注意开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;
}