//作者:Manfred Scheucher//日期:01.06.2015#包括#包括#包括#定义MAXN 100长ct=0;整数n0;整数x[(MAXN*(MAXN+1))/2];int搜索(int n,int maxk,int term,int valid_sofar){如果(n==0){ct++;//如果(ct%1000000==0)printf(“计数:%ld\n”,ct);if(有效){打印(“%d%ld\n”,n0,ct);退出(0);}}其他的{如果(maxk>n)maxk=n;整数k;int still_valid(无效);对于(k=maxk;k>0;k--){still_valid=valid_so_far?(x[项]==k):0;搜索(n-k,k,术语+1,still_valid);}}}int main(int argc,char**argv){int n=原子(argv[1]);n0=n;整数i;//printf(“行:”);对于(i=0;i-->