遞迴 拆分自然數

2021-09-17 23:39:52 字數 986 閱讀 4257

題目描述

「天下熙熙,皆為利來;天下攘攘,皆為利往」,監獄裡的暗勢力劃分地盤的目的無非是為了獲取利益,他們分配利益的方式是基於這樣乙個準則:設總利益為自然數n,則任何乙個大於1的n,總可以拆分成若干個小於n的自然數之和,求出n的所有拆分後選擇最合適的一種進行分配,例如當n=3時,有兩種劃分,即3=1+2和3=1+1+1。試求出n的所有拆分。

輸入乙個整數即n,n<100。

輸出輸出每一種劃分方案,每種劃分方案佔一行,最後一行為方案總數。

樣例輸入

3樣例輸出

3=1+1+1

3=1+2

2這是我自己做的。

#includeint a[200];

int ans = 0;

int dfs(int n, int step,int m)

printf("\n");

ans++;

} else }

return ans;

}int main()

這是在網上找的。

#includeint a[10000];

void print(int n)

printf("\n");

}void dfs(int n,int ans) //ans表示遞迴的深度,每乙個深度對應 多個表示式,

}}int main()

}

比較推薦這個。

#includeint a[10000];

int n, cnt;

void dfs(int num, int now, int all)

else }

int main()

自然數拆分

描述 description 輸入自然數n,然後將其拆分成由若干數相加的形式,參與加法運算的數可以重複。輸入格式 inputformat 輸入只有乙個整數n,表示待拆分的自然數n。n 80 輸出格式 outputformat 輸出乙個數,即所有方案數 樣例輸入 sampleinput 複製資料 7 ...

自然數拆分

問題描述 自然數的拆分 任何乙個大於1的自然數n,總可以拆分成若干個自然數之和,並且有多種拆分方法。試求 n的所有拆分。例如自然數5,可以有如下一些拆分方法 5 1 1 1 1 1 5 1 1 1 2 5 1 2 2 5 1 4 5 2 3 注意,本題中n拆分出來的數x的範圍是1 x整數劃分可以參考...

自然數拆分

題目 給出sum min max和n四個正整數,請輸出所有將sum拆分為n個遞增的正整數 允許相等 之和,其中每個正整數k都滿足 min k max。在少俠的部落格 看到這道題 就隨手做了下。該題與輸出n個數取m個數的所有組合類似,只不過限定了m個數的和以及取值範圍。可以先用貪心演算法構造乙個最小的...