正在加载图片...
printf("%d =%2d",K, a[s[l) for(i= 2: i < sp: i++)printf("+%2d", a[s[ill) int a[N+1], s[N+1],i, j, sp, t, finish,mO printf("\n\input %d data<%d:, N, K) i++)scanf( %d", &ali) j: finish =0 hile(i>N) f(sp >1) f(t = 0) printsubset(a, s, sp) elset finish 1 Iwhile(finish ==0) printf( total= %d\n 8.23找出1~n的自然数中任意m个自然数的所有组合,每种组合中,自然数按递增序 输如;如:设n=6,则有序列:1,2,3,4,5,6;当m=3时,有组合: 123 1249 { int i; printf("%d = %2d",K,a[s[1]]); for(i = 2;i <= sp;i++) printf("+%2d",a[s[i]]); printf("\n"); total++; } int main() { int a[N+1],s[N+1],i,j,sp,t,finish,m=0; printf("\n\ninput %d data<%d:",N,K); for(i = 1;i <= N;i++) scanf("%d",&a[i]); total=0; for(j = 1;j <= N;j++) { sp = 0; t = K; i = j; finish = 0; do{ if(t>=a[i]) { sp++; s[sp] = i; t = t-a[i]; if(t==0) i = N; } i++; while(i > N) if(sp > 1) { if(t == 0) printsubset(a,s,sp); t = t+a[s[sp]]; i = s[sp]+1; sp--; } else{ finish = 1; i = 1; } }while(finish = =0); } printf("total= %d\n",total); } 8.23 找出 1~n 的自然数中任意 m 个自然数的所有组合,每种组合中,自然数按递增序 输如;如:设 n=6,则有序列:1,2,3,4,5,6;当 m=3 时,有组合: 1 2 3 1 2 4
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有