/*
Time:2019.11.15
Author: Goven
type:递推(填充)
err:WR
ref: 其他方法:状态压缩https://blog.csdn.net/u013480600/article/details/19612171
*/
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
int n;
int f[35];
memset(f, 0, sizeof(f));
f[0] = 1;//err1
f[2] = 3;
int sum = 3;
for (int i = 4; i <= 30; i += 2) {
f[i] = 2 + f[i - 2] + sum * 2;
sum += f[i];
}
while(cin >> n && n != -1) {
cout << f[n] << endl;
}
return 0;
}
/*
将循环中的sum省略
https://www.cnblogs.com/yu-xing/p/10360698.html
*/
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
int n;
int f[35];
memset(f, 0, sizeof(f));
f[0] = 1;//err1
f[2] = 3;
for (int i = 4; i <= 30; i += 2) {
f[i] = (f[i - 2] << 2) - f[i - 4];
}
while(cin >> n && n != -1) {
cout << f[n] << endl;
}
return 0;
}
网友评论