hdu 1715 大菲波数(大数相加)
发布时间:2020-12-14 03:39:45 所属栏目:大数据 来源:网络整理
导读:转载请注明出处:http://blog.csdn.net/u012860063 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1715 --------------------------------------------------------------------------------------------------------------------------------------
转载请注明出处:http://blog.csdn.net/u012860063 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1715
----------------------------------------------------------------------------------------------------------------------------------------------------------
欢迎光临天资小屋
----------------------------------------------------------------------------------------------------------------------------------------------------------
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
一道大数相加的题目!? 具体见代码: #include<cstdio> #include<iostream> #include<cstring> #define N 1004 using namespace std; char F[N][N]; int main() { memset(F,'0',sizeof(F)); // 初始化 F[0][0]='0'; F[1][0]='1'; F[2][0]='1'; int i,j,d=1; for(i = 3 ; i < N ; i++) //大数相加 { d++; int c=0,s; for(j = 0 ; j <= d ; j++) { s=F[i-1][j]-'0'+F[i-2][j]-'0'+c; c=s / 10; //进位 F[i][j] = s%10+'0'; } } int t; //cin>>t; scanf("%d",&t); while(t--) { int n; // cin >> n; scanf("%d",&n); int k=N-1; while(k--) { if(F[n][k]!='0') break; //去掉前面的0 } for(i=k;i>=0;i--) printf("%c",F[n][i]); //cout<<Fib[n][i]; // cout<<endl; printf("n"); } return 0; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |