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

hdu1041规律+大数

#include<stdio.h>
#include<string.h>
const int mod=10000;
int a[1020][700];
void fun()
{
    a[1][1]=0;a[2][1]=1;
    a[3][1]=1;a[4][1]=3;
    int i,j,tmp=0;
    for(i=5;i<1020;i++)
        for(j=1,tmp=0;j<700;j++)
        {
            tmp+=a[i-1][j]+a[i-2][j]+a[i-2][j];
            a[i][j]=tmp%mod;
            tmp/=mod;
        }
    return ;
}
int main()
{
    fun();
    int n,i;
    while(~scanf("%d",&n))
    {
        if(n==1){puts("0");continue;}
        i=699;
        while(a[n][i]==0) i--;
        printf("%d",a[n][i--]);
        for(;i>0;i--)
          printf("%04d",a[n][i]);
        printf("\n");
    }
    return 0;
}

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

相关推荐