HDU 大菲波数(大数复习)
发布时间:2020-12-14 03:02:22 所属栏目:大数据 来源:网络整理
导读:大菲波数 Time Limit: 1000/1000 MS (Java/Others)????Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 11589????Accepted Submission(s): 3939 点击打开题目链接 Problem Description Fibonacci数列,定义如下: f(1)=f(2)=1 f(n)=f(n-1)+
大菲波数Time Limit: 1000/1000 MS (Java/Others)????Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 11589????Accepted Submission(s): 3939 点击打开题目链接
Problem Description
Fibonacci数列,定义如下:
f(1)=f(2)=1 f(n)=f(n-1)+f(n-2) n>=3。 计算第n项Fibonacci数值。
?
Input
输入第一行为一个整数N,接下来N行为整数Pi(1<=Pi<=1000)。
?
Output
输出为N行,每行为对应的f(Pi)。
?
Sample Input
?
Sample Output
?
Source
数组存储; #include <iostream> #include<string.h> #include<stdio.h> #define N 1000 using namespace std; int f[N],b[N],c[N]; void slove(int n) { int m=0,d=0,i,j; memset(b,sizeof(b)); memset(c,sizeof(c)); f[0]=1; f[1]=1; b[0]=1; c[0]=1; for(i=2;i<n;i++) { for(j=0;j<=m;j++) { f[j]=b[j]+c[j]+d; d=f[j]/10000; f[j]%=10000; c[j]=b[j]; b[j]=f[j]; } if(d>0) { m++; f[m]=d; b[m]=f[m]; d=0; } } printf("%d",f[m]); for(i=m-1;i>=0;i--) printf("%04d",f[i]); printf("n"); } int main() { int t,n; while(~scanf("%d",&t)) { while(t--) { scanf("%d",&n); slove(n); } } return 0; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |