关于董永键老师一本通书的裴波那契数列你能做到哪一个?
反正我是没做完。
1071:菲波那契数时间限制: 1000 ms 内存限制: 65536 KB提交数: 18129 通过数: 9498 【题目描述】菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。给出一个正整数k,要求菲波那契数列中第k个数是多少。【输入】输入一行,包含一个正整数k。(1 ≤ k ≤ 46)【输出】输出一行,包含一个正整数,表示菲波那契数列中第k个数的大小。【输入样例】19【输出样例】4181
1159:斐波那契数列时间限制: 1000 ms 内存限制: 65536 KB提交数: 7019 通过数: 4962 【题目描述】用递归函数输出斐波那契数列第n项。0,1,1,2,3,5,8,13……【输入】一个正整数n,表示第n项。【输出】第n项是多少。【输入样例】3【输出样例】1
1188:菲波那契数列(2)时间限制: 1000 ms 内存限制: 65536 KB提交数: 8702 通过数: 3136 【题目描述】菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。给出一个正整数a,要求菲波那契数列中第a个数对1000取模的结果是多少。【输入】第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a(1 ≤ a ≤ 1000000)。【输出】n行,每行输出对应一个输入。输出应是一个正整数,为菲波那契数列中第a个数对1000取模得到的结果。【输入样例】452191【输出样例】511811
1201:菲波那契数列时间限制: 1000 ms 内存限制: 65536 KB提交数: 5051 通过数: 3014 【题目描述】菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。给出一个正整数a,要求菲波那契数列中第a个数是多少。【输入】第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a(1≤a≤20)。【输出】输出有n行,每行输出对应一个输入。输出应是一个正整数,为菲波那契数列中第a个数的大小。【输入样例】452191【输出样例】5141811
1642: 【例 2】Fibonacci 第 n 项时间限制: 1000 ms 内存限制: 524288 KB提交数: 75 通过数: 22 【题目描述】大家都知道 Fibonacci 数列吧,f1=1,f2=1,f3=2,f4=3,…,fn=fn−1+fn−2f1=1,f2=1,f3=2,f4=3,…,fn=fn−1+fn−2 。现在问题很简单,输入 nn 和 mm,求 fnmodmfnmodm。【输入】输入 n,mn,m。【输出】输出 fnmodmfnmodm。【输入样例】5 1000【输出样例】5【提示】数据范围与提示:对于 100% 的数据, 1≤n≤2×109,1≤m≤109+10。
1643:【例 3】Fibonacci 前 n 项和时间限制: 1000 ms 内存限制: 524288 KB提交数: 34 通过数: 22 【题目描述】大家都知道 Fibonacci 数列吧,f1=1,f2=1,f3=2,f4=3,…,fn=fn−1+fn−2f1=1,f2=1,f3=2,f4=3,…,fn=fn−1+fn−2 。现在问题很简单,输入 nn 和 mm,求 {fn}{fn} 的前 nn 项和 SnmodmSnmodm。【输入】输入 n,mn,m。【输出】输出前 nn 项和 SnmodmSnmodm。【输入样例】5 1000【输出样例】12【提示】数据范围与提示:对于 100% 的数据, 1≤n≤2×109,1≤m≤109+10。
1644:【例 4】佳佳的 Fibonacci时间限制: 1000 ms 内存限制: 524288 KB提交数: 28 通过数: 13 【题目描述】佳佳对数学,尤其对数列十分感兴趣。在研究完 Fibonacci 数列后,他创造出许多稀奇古怪的数列。例如用 S(n)S(n) 表示 Fibonacci 前 nn 项和 modmmodm 的值,即 S(n)=(F1+F2+...+Fn)modmS(n)=(F1+F2+...+Fn)modm,其中 F1=F2=1,Fi=Fi−1+Fi−2F1=F2=1,Fi=Fi−1+Fi−2 。可这对佳佳来说还是小菜一碟。终于,她找到了一个自己解决不了的问题。用 T(n)=(F1+2F2+3F3+...+nFn)modmT(n)=(F1+2F2+3F3+...+nFn)modm 表示 Fibonacci 数列前 nn 项变形后的和 modmmodm 的值。现在佳佳告诉你了一个 nn 和 mm,请求出 T(n)T(n) 的值。【输入】输入数据包括一行,两个用空格隔开的整数 n,mn,m。【输出】仅一行,T(n)T(n) 的值。【输入样例】5 5【输出样例】1【提示】样例解释T(5)=(1+2×1+3×2+4×3+5×5)mod5=1T(5)=(1+2×1+3×2+4×3+5×5)mod5=1数据范围与提示:对于 30% 的数据,1≤n≤1000;对于 60% 的数据,1≤m≤1000;对于 100% 的数据,1≤n,m≤231−1
1645:Fibonacci时间限制: 1000 ms 内存限制: 524288 KB提交数: 35 通过数: 24 【题目描述】原题来自:POJ 3070我们知道斐波那契数列 F0=0,F1=1,Fn=Fn−1+Fn−2。求 Fnmod104 。【输入】多组数据,每组数据一行,一个整数 nn。输入以 −1−1 结束。【输出】对于每组数据,输出 Fnmod104 。【输入样例】099999999991000000000-1【输出样例】0346266875【提示】数据范围与提示:对于全部数据,0≤n≤109
己解决部分程序代码
#includeusing namespace std;int main(){ int k,a[50]; cin>>k; a[1]=1,a[2]=1; for(int i=3;i<=k;i++) a[i]=a[i-1]+a[i-2]; cout<
#includeusing namespace std;int fblq(int n){ if(n==1)return 0; if(n==2)return 1; return fblq(n-1)+fblq(n-2);}int main(){ int n; cin>>n; cout<
#includeusing namespace std;int a[1000001],b[100];int main(){ int n,max=0; cin>>n; for(int i=1;i<=n;i++) { cin>>b[i]; if(b[i]>max)max=b[i]; } a[1]=a[2]=1; for(int i=3;i<=max;i++) a[i]=(a[i-1]+a[i-2])%1000; for(int i=1;i<=n;i++)cout< <<'\n'; return 0;}
#includeusing namespace std;int a[21],b[10000];int main(){ int n,max=0; cin>>n; for(int i=1;i<=n;i++) { cin>>b[i]; if(max
#includeusing namespace std;long long const mxn=20000011;long long n,m,a[mxn];long long fb(long long n){ if(n==1||n==2)return 1; if(n>=mxn){ long long t1=fb(n/2)%m,t2; if(n%2)t2=fb(n/2+1)%m,t1=(t1*t1+t2*t2)%m; else t2=fb(n/2-1),t1=(t1*t1+2*t1*t2)%m; return t1; } else { if(a[n]==0) { long long t1=fb(n/2)%m,t2; if(n%2)t2=fb(n/2+1)%m,a[n]=(t1*t1+t2*t2)%m; else t2=fb(n/2-1),a[n]=(t1*t1+2*t1*t2)%m; } return a[n]; }}int main(){ cin>>n>>m; cout<