Problem Description
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.
Input
Each line will contain an integers. Process to end of file.
Output
For each case, output the result in a line.
Sample Input
100
Sample Output
4203968145672990846840663646
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.
Input
Each line will contain an integers. Process to end of file.
Output
For each case, output the result in a line.
Sample Input
#include"stdio.h"
#define N 10001
int main()
{
int i,j,temp;
int n,a[4][N+1]={0},move[N+1]={0};
while(~scanf("%d",&n))
{
for(i=0;i<4;i++)
a[i][0]=1;
if(n>4)
for(i=4;i<n;i++) //the more important!!!
{
for(j=N;a[(i-1)%4][j]==0;j--);
temp=j;
for(j=0;j<=temp+1;j++)
{
move[j+1]=(a[(i-1)%4][j]+a[(i-2)%4][j]+a[(i-3)%4][j]+a[i%4][j]+move[j])/10;
a[i%4][j]=(a[(i-1)%4][j]+a[(i-2)%4][j]+a[(i-3)%4][j]+a[i%4][j]+move[j])%10;
move[j]=0;
}
}
for(j=N;a[(n-1)%4][j]==0;j--);
for(i=j;i>=0;i--)
{
printf("%d",a[(n-1)%4][i]);
a[0][i]=a[1][i]=a[2][i]=a[3][i]=0;
}
printf("\n");
}
return 0;
}
100
Sample Output
4203968145672990846840663646