#include<cstdio>
typedef long long LL;
const int M=1e3+5;
int n;
LL b[M], ans;
int main(){
scanf("%d",&n);
if(((1+n) *n /2)&1)puts("0");
else{
for(int i=0;i<(1<<(n/2));++i){
int cur=0;
for(int j=0; (i>>j)>0 ;++j) if((i>>j) &1) cur+=(j+1);
b[cur]++;
}
for(int i=0;i<(1<<(n-n/2));++i){
int cur=0;
for(int j=0;(i>>j)>0;++j) if((i>>j)&1) cur+=j+n/2+1;
if((1+n) *n / 4 >=cur)
ans+=b[(1+n) * n / 4-cur];
}
printf("%lld\n", ans /2);
}
return 0;
}
代码可能有误,还可以见这里: