Hat's Fibonacci
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 4998 Accepted Submission(s): 1691
F(1) = 1,F(2) = 1,F(3) = 1,F(4) = 1,F(n>4) = F(n - 1) + F(n-2) + F(n-3) + F(n-4)
Your task is to take a number as input,and print that Fibonacci number.
100
4203968145672990846840663646 Note: No generated Fibonacci number in excess of 2005 digits will be in the test data,ie. F(20) = 66526 has 5 digits.
///运用数组存储固定邻接位数
#include<iostream> #include<iomanip> using namespace std; struct { int link[600]; int num; }a[10010]; int main() { int n,i,j,temp; a[1].link[a[1].num++]=1; a[2].link[a[2].num++]=1; a[3].link[a[3].num++]=1; a[4].link[a[4].num++]=1; for(i=5;i<=10000;i++) { temp=0; for(j=0;j<=a[i-1].num-1;j++) { a[i].link[j]=a[i-1].link[j]+a[i-2].link[j]+a[i-3].link[j]+a[i-4].link[j]+temp; temp=a[i].link[j]/10000; a[i].link[j]=a[i].link[j]%10000; } a[i].num=a[i-1].num; if(temp>0) { a[i].link[j]=temp; a[i].num++; } } while(cin>>n) { j=a[n].num-1; cout<<a[n].link[j]; for(j=a[n].num-2;j>=0;j--) { printf("%04d",a[n].link[j]); } cout<<endl; } return 0; }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。