将1,2,3三个数放置在一个格数为n的环中,保证相邻的数字不一样,输出有多少种放法(不考虑环的顺序:1 2 3和2 3 1是一种)
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
LL ans[51] = {3, 6, 6, 18};
int main(){
for(int i = 4; i < 51; ++i) ans[i] = 2 * ans[i - 2] + ans[i - 1];
int n;
while(cin >> n){
cout << ans[n - 1] << endl;
}
return 0;
}