HDU 1250 Hat's Fibonacci(高精度)

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;
}

你可能感兴趣的:(HDU 1250 Hat's Fibonacci(高精度))