1. 程式人生 > >將整數分解成若干項相加的形式

將整數分解成若干項相加的形式

#include<stdio.h>
#define MAXN 30
int Terms[MAXN];
int count;//count表示輸出結果數
int N;//被分解的整數
void Search(int remain,int start,int num)
//remain剩餘分解數,start表示分解起點數,分解得每一項應該大於等於start
//num用來記錄已經分解得項數
{
    int i;
    if(0==remain)
    {
        count++;
        printf("%d=%d",N,Terms[0]);
        for(i=1;i<num;i++)
            printf
("+%d",Terms[i]); printf(";"); printf("\n"); } else { for(i=start;i<=remain;i++) { Terms[num]=i; Search(remain-i,i,num+1); } } } int main() { scanf("%d",&N); count=0; Search(N,1,0); if(count%4!=0) printf
("\n"); return 0; }

這裡寫圖片描述