首先进行前面几项的计算,发现1对应3,2对应6,3对应6,4对应18,而5对应30;
不难发现a[i]=a[i-1]+2*a[i-2];
此处仍然需要使用长整形。
代码如下:
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
long long int N;
long long int a[55]={3,6,6};
for(int i=3;i<50;i++)
a[i]=a[i-1]+2*a[i-2];
while(scanf("%lld",&N)!=EOF)
{
printf("%lld\n",a[N-1]);
}
return 0;
}