Description
已知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),给出n,输出F(n)
Input
多组用例,每组用例占一行为一整数n,以文件尾结束输入
Output
输出F(n)
Sample Input
100
Sample Output
4203968145672990846840663646
Solution
高精度加法
Code
#include<stdio.h>
int f[7654][543];
int main()
{
f[0][0]=1;
f[1][0]=1;
f[2][0]=1;
f[3][0]=1;
for(int i=4;i<7654;i++)
{
int k=0;
for(int j=0;j<543;j++)
{
k+=f[i-4][j]+f[i-3][j]+f[i-2][j]+f[i-1][j];
f[i][j]=k%10000;
k/=10000;
}
}
int n;
while(~scanf("%d",&n))
{
int i=543-1;
while(f[n][i]==0&&i>=0)i--;//去前置0
printf("%d",f[n-1][i]);
for(int j=i-1;j>=0;j--)
printf("%04d",f[n-1][j]);
printf("\n");
}
return 0;
}