斐波那契问题,基于大数加法
发布时间:2020-12-14 04:10:53 所属栏目:大数据 来源:网络整理
导读:#includeiostreamusing namespace std;const int RADIX=10,M=1003;//RADIX表示进制void add(int*a,int* b)//两个大整数求和,和保存在数组a中{ int i,carry=0;//carry表示进位 for(i=0;iM+1;i++) { a[i]=a[i]+b[i] +carry; carry=a[i]/RADIX; a[i]=a[i]%RADI
#include<iostream> using namespace std; const int RADIX=10,M=1003;//RADIX表示进制 void add(int*a,int* b)//两个大整数求和,和保存在数组a中 { int i,carry=0;//carry表示进位 for(i=0;i<M+1;i++) { a[i]=a[i]+b[i] +carry; carry=a[i]/RADIX; a[i]=a[i]%RADIX; } } int main() { int *a=new int[M]; int *b=new int[M]; int *temp=new int[M]; int i,n; while(cin>>n) { a[0]=1; b[0]=1; for(i=1;i<M;i++) a[i]=b[i]=0; for(i=3;i<=n;i++) { add(a,b); temp=a; a=b; b=temp; } int k=M-1;//过滤前面的0 while(b[k]==0) {k--;} if(k<0) cout<<0; else { for(;k>=0;k--) { cout<<b[k]; } } cout<<endl; } return 0; }
题目:HUNNU OJ?10408???, ?ZOJ 1828? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |