- 246 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 02:55:57 ]
- じゃあ僕は組み合わせで。
#include<stdio.h> #include<string.h> int partition(int n,int m,char *exp); int main(void){ int i,n,c; do{ printf("nを入力してください。 n="); scanf("%d",&n); c=0; for(i=n;i>0;i--) c += partition(n,i,""); printf("Total:%d\n",c); }while(n != 0); return 0; } int partition(int n,int m,char *exp){ int i,c=0; char ex[100]=""; if(n==m){ printf("%s%d\n",exp,m); return 1; } if(m==0) return 0; if(n>m){ sprintf(ex,"%s%d+",exp,m); for(i=m;i>0;i--) c += partition(n-m,i,ex); return c; } return 0; }
|

|