CCF NOI1071 Pell数列
问题链接:CCF NOI1071 Pell数列。
时间限制: 1000 ms 空间限制: 262144 KB
题目描述
Pell数列a1,a2,a3...的定义是这样的:a1=1,a2=2, ... ,an=2*an-1+an-2 (n>2)。给出一个正整数k,要求Pell数列的第k项模上32767是多少。
输入
第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数k (1<=k<1000000)。
输出
n行,每行输出对应一个输入。输出应是一个非负整数。
样例输入
2
1
8
样例输出
1
408
数据范围限制
1<=n<=10,1<=k<1000000
问题分析
这个问题在函数递推定义上,类似于斐波那契数列,数列的第n项都是递推定义的。
关键是测试用例可能很多,所以必须打表。
Pell数列的每一项被模除,所以值不大,用int类型就可以了。
程序说明
函数setpell()计算Pell数列的各个项存储在数组pell[]中备用,函数是用递推来实现。
要点详解
- 用函数封装功能是一个好的做法。
- 能用递推就不用递归,递归的代码逻辑往往比递推要简洁,但是通常时间上要慢并且需要更多的存储。
- 重复多次使用计算函数值时,如果函数是递归定义的,简单地封装函数会导致重复计算,通常用打表的方法来解决。这是一种套路,需要熟练掌握。
参考链接:(略)。
100分通过的C语言程序:
#include <stdio.h>#define MOD 32767
#define N 1000000
int pell[N+1];void setpell(int n)
{int i;pell[1] = 1;pell[2] = 2;for(i=3; i<=n; i++)pell[i] = (2 * pell[i - 1] + pell[i - 2]) % MOD;
}int main(void)
{int n, i;setpell(N);scanf("%d", &n);while(n--) {scanf("%d", &i);printf("%d\n", pell[i]);}return 0;
}
CCF NOI1071 Pell数列相关推荐
- Bailian2786 Pell数列【数列】(POJ NOI0102-1788,POJ NOI0103-1788)
问题链接:POJ NOI0102-1788 Pell数列. 问题链接:POJ NOI0103-1788 Pell数列. Pell数列 描述 Pell数列a1, a2, a3, ...的定义是这样的,a ...
- 37.递推:Pell数列
总时间限制: 3000ms 内存限制: 65536kB 描述 Pell数列a1, a2, a3, ...的定义是这样的,a1 = 1, a2 = 2, ... , an = 2 * an − 1 + ...
- 信息学奥赛一本通 1189:Pell数列 | 1202:Pell数列 | OpenJudge NOI 2.3 1788:Pell数列 | 2.3 1788:Pell数列
[题目链接] ybt 1189:Pell数列 ybt 1202:Pell数列 OpenJudge NOI 2.2 1788:Pell数列 OpenJudge NOI 2.3 1788:Pell数列 [ ...
- 信息学奥赛一本通(1202:Pell数列)
1202:Pell数列 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 24392 通过数: 7318 [题目描述] Pell数列a1,a2,a3,...a ...
- 信息学奥赛一本通(1189:Pell数列)
1189:Pell数列 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 17982 通过数: 9057 [题目描述] Pell数列a1,a2,a3,...a ...
- Pell数列(信息学奥赛一本通-T1202)
[题目描述] Pell数列a1,a2,a3,...的定义是这样的,a1=1,a2=2,...,an=2an−1+an−2(n>2). 给出一个正整数k,要求Pell数列的第k项模上32767是多 ...
- Pell数列(信息学奥赛一本通-T1189)
[题目描述] Pell数列a1,a2,a3,...的定义是这样的,a1=1,a2=2,...,an=2an−1+an−2(n>2). 给出一个正整数k,要求Pell数列的第k项模上32767是多 ...
- 1788:Pell数列
总时间限制: 3000ms 内存限制: 65536kB 描述 Pell数列a1, a2, a3, ...的定义是这样的,a1 = 1, a2 = 2, ... , an = 2 * an − 1 ...
- OpenJudge_P1788 Pell数列(递推)
总时间限制: 3000ms 内存限制: 65536kB 描述 Pell数列a1, a2, a3, -的定义是这样的,a1 = 1, a2 = 2, - , an = 2 * an − 1 + an - ...
最新文章
- Thinkpad R400 a16驱动安装笔记
- 北斗导航 | RAIM:改进的最优加权平均解(IOWAS)算法(接收机自主完好性监测)
- Android Studio 运行模拟器时提示 “/dev/kvm device: permission denied”
- 一键了结CUP100%问题
- 关于有类路由协议和无类路由协议
- 为什么技术人干得越久越拿不到高薪?
- 多字节常量char m='\abcd'
- Google I/O 还没开始,我们先来看点什么?
- SQLite 之 C#版 System.Data.SQLite 使用
- 收入时间序列——之预测总结篇
- pantum打印机驱动安装m6506_奔图Pantum M6506NW 驱动
- 转《腾讯大讲堂11 拍拍ce工作经验分享》
- 2008年买书流水账
- 伍迷随想冷饭集 之 北国冬天之随想
- 2019年的第一场雪来的既猛又烈,突然想分享点东西
- SUMOlympics
- Windows下cmd进入MySql的命令界面
- 详解如何获取深度学习模型中间层的输出值
- 刚写完的 基于网页的音乐平台网站(含后台) 毕业设计毕设源码 (1)功能介绍
- 2015年《大数据》高被引论文Top10文章No.7——大数据机器学习系统研究进展(下)...
热门文章
- 国内少有的Flutter干货分享:Flutter的原理及美团的实践!
- transferwise怎么提现_收款工具transfer wise介绍(多币种、可收CJ联盟)
- 怎样才能恢复误删的数据-免费版本
- linux系统重启方式,查看linux系统重启的命令和方式
- Java面试知识(持续更新)
- plsql打开sql窗口快捷键_可以提升3倍开发效率的 Intellij IDEA快捷键大全汇总(2019)...
- LeetCode35. 搜索插入位置(二分查找)
- Qt总结之十二:C/C++内存分配方式与存储区
- 【C/C++】一篇文章教你区分数组指针指针数组
- ZT: Delphi编程规范1.0.0.0 (yckxzjj )