/**********
author:chanjun2016
email:15755396353@163.com
***********/
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <vector>
#include <string>
#include <map>
#include <set>
#include <algorithm>
using namespace std;
#define INF = 0x3f3f3f3f
const int maxn = 30 + 5;
int n;
int f[maxn],g[maxn];
void process(){
f[1] = 0 , f[2] = 0, f[3] = 1;
g[0] = 1 , g[1] = 2 , g[2] = 4, g[3] = 7;
for (int i = 4; i <= maxn; ++i){
f[i] = 1 << (i - 3);
for (int j = 2; j <= i - 2; ++j){
f[i] += g[j - 2] * (1 << (i - j - 2));
}
g[i] = (1 << i) - f[i];
}
}
int main(){
process();
while (scanf("%d",&n),n > 0){
printf("%d\n", f[n]);
}
return 0;
}
uva 580
最新推荐文章于 2016-11-10 17:04:58 发布