?
題目編號:Exp08-Basic01,GJBook3-12-05
題目名稱:正整數分解
題目描述:正整數n,按第一項遞減的順序依次輸出其和等于n的所有不增的正整數和式。
輸入:一個正整數n(0<n≤15)。
輸出:每行輸出如樣例所示,和等于n的不增正整數和式,數字和運算符間無符號,最后一行結尾有一個回車換行符。
#include<stdio.h>int a[20],p=1;
void divide(int n,int flag){if(n<1){printf("%d=",a[0]);for(int i=1;i<p-1;i++){printf("%d+",a[i]);}printf("%d\n",a[p-1]);return;}if(n<flag)flag=n;//下一個分解大小的上限for(int i=flag;i>=1;i--){a[p]=i;p++;divide(n-i,i);p--;}
}
int main(){int n;scanf("%d",&n);a[0]=n;divide(n,n-1);return 0;
}