微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

hdu1297(大数)

#include<stdio.h>

int a[1002][6000],len[6000];

int main()
{
    a[1][0]=1;
    a[2][0]=2;
    a[3][0]=4;
    a[4][0]=7;
    len[1]=len[2]=len[3]=len[4]=1;
    int i,j,c,n;
    for(i=5;i<=1000;i++)
    {
        c=0;len[i]=len[i-1];      //len[i]表示a[i]数的字长度
        for(j=0;j<len[i];j++)
        {
            a[i][j]=a[i-1][j]+a[i-2][j]+a[i-4][j]+c;     //主要的
            c=a[i][j]/10;
            a[i][j]%=10;
            if(c&&len[i]==j+1)     //当j+1等于len[i],并且需要进位时,len[i]就加1
            len[i]++;
        }

    }         while(scanf("%d",&n)==1)     {         for(i=len[n]-1;i>=0;i--)         printf("%d",a[n][i]);         printf("\n");     }     return 0; }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐