HDU 1250 Hat's Fibonacci
2015-03-10 22:14
316 查看
Total Submission(s): 8372 Accepted Submission(s): 2725
[align=left]Problem Description[/align]
A Fibonacci sequence is calculated by adding the previous two members the sequence, with the first two members being both 1.
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.
[align=left]Input[/align]
Each line will contain an integers. Process to end of file.
[align=left]Output[/align]
For each case, output the result in a line.
[align=left]Sample Input[/align]
100
[align=left]Sample Output[/align]
4203968145672990846840663646
Note:
No generated Fibonacci number in excess of 2005 digits will be in the test data, ie. F(20) = 66526 has 5 digits.
[align=left]Author[/align]
戴帽子的
滚动数组+大数。
开个二维数组,第一维是N,第二维是数字个数。。
Hat's Fibonacci
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 8372 Accepted Submission(s): 2725
[align=left]Problem Description[/align]
A Fibonacci sequence is calculated by adding the previous two members the sequence, with the first two members being both 1.
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.
[align=left]Input[/align]
Each line will contain an integers. Process to end of file.
[align=left]Output[/align]
For each case, output the result in a line.
[align=left]Sample Input[/align]
100
[align=left]Sample Output[/align]
4203968145672990846840663646
Note:
No generated Fibonacci number in excess of 2005 digits will be in the test data, ie. F(20) = 66526 has 5 digits.
[align=left]Author[/align]
戴帽子的
滚动数组+大数。
开个二维数组,第一维是N,第二维是数字个数。。
#include <stdio.h> #include <algorithm> #include<iostream> #include<cstring> using namespace std; #include <string.h> int main() { int x[5][2008]; //之所以开5,因为下面所有的操作都MOD 5 了。 int n,i,j; while(scanf("%d",&n)!=EOF) { if(n<=4) { printf("1\n"); continue; } memset(x,0,sizeof(x)); x[1][0]=1; x[2][0]=1; x[3][0]=1; x[4][0]=1; //初始化 for(i=5;i<=n;i++) { memset(x[i%5],0,sizeof(x[i%5])); //初始化。 for(j=0;j<=2005;j++) { x[i%5][j]+=x[(i-1)%5][j]+x[(i-2)%5][j]+x[(i-3)%5][j]+x[(i-4)%5][j];//大数思想+滚动数组 if(x[i%5][j]>=10) { x[i%5][j+1]+=x[i%5][j]/10; //因为是反过来输出,所以要后一位进位。 x[i%5][j]%=10; } } } i=2005; while(x[n%5][i]==0)//从后面开始判断非0。 --i; while(i>=0) { printf("%d",x[n%5][i]); //一个数一个数输出。 --i; } printf("\n"); } return 0; }
相关文章推荐
- HDU 1250 Hat's Fibonacci
- HDU 1250 Hat's Fibonacci JAVA大数
- Hat's Fibonacci hdu 1250
- Hat's Fibonacci HDU - 1250
- hdu-1250-Hat's Fibonacci
- hdu-1250-Hat's Fibonacci
- HDU 1250 Hat's Fibonacci
- HDU 1250 Hat's Fibonacci
- hdu 1250 Hat's Fibonacci
- hdu 1250 Hat's Fibonacci
- HDOJ 1250 Hat's Fibonacci
- hdu 1250 大数Fibonacci
- HDU1250_Hat's Fibonacci【高精度】【水题】
- hdu-1250-Hat's Fibonacci(大数问题)
- HDU 1250 Hat's Fibonacci 大数加法 进位10000000
- HDU1250~Hat's Fibonacci(大数加法)
- hdu 1250 Hat's Fibonacci
- 【HDU】1250 - Hat's Fibonacci(java - BigDecimal)
- hdu 1250 Hat's Fibonacci
- hdu 1250 Hat's Fibonacci(大数加法)