HDU2047

注意开long long 以及输出的时候%lld
还有就是到50的时候已经溢出了,再大的数据就需要高精度加法了

#include <cstdio>
#include <iostream>
using namespace std;

int main()
{
    long long ans[60]={0};
    int n;
    ans[1] = 3;
    ans[2] = 8; 
    ans[3] = 22;
    for(int i=4;i<=50;i++)
    {
        ans[i] = 2*(2*ans[i-3] + 3*ans[i-2]);
    //  ans[i] = 2*(ans[i-1]+ans[i-2]);
    }
    if(ans[50]<0)
    {
        cout<<"asdasdasd"<<endl;
    }
    while(scanf("%d",&n)!=EOF)
    {
        printf("%I64d\n",ans[n]);
    }
    return 0;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容