//作者:Manfred Scheucher//日期:2015年5月29日#包括#包括#包括#定义MAXN 10长ct=0;整数x[1<n) 最大值=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二项式(int n,int k){如果(k>n|k<0)返回0;如果(k==0|k==n)返回1;返回二项式(n-1,k-1)+二项式(n-1,k);}int main(int argc,char**argv){int n=原子(argv[1]);整数i;printf(“行:”);对于(i=0;i<=n;i++){x[i]=二项式(n,(n-i)/2);打印f(“%d”,x[i]);}x[n+1]=0;printf(“\n”);断言(n<MAXN);搜索(1<-->