- 26 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 16:12:08 ]
- >>19 配列は使ってもいいんだよね?
#include <stdio.h> #define N_MAX 1024 int ResultNum, Result[N_MAX]; int part(int,int,int); int main(){ int n; printf("n: "); scanf("%d",&n); if(n>N_MAX) return 1; printf("total number = %d\n", part(n,1,0)); return 0; } int part(int total, int min, int result_num){ int i, sub; int cnt = 0; if(total == 0){ cnt = 1; for(i=0;i<result_num;i++) printf(" %d", Result[i]); printf("\n"); }else{ for(sub = min; sub <= total; sub++){ Result[result_num]=sub; cnt += part(total-sub,sub,result_num+1); } } return cnt; }
|

|