將乙個正整數n分解成幾個正整數相加,可以有多種分解方法,例如7=6+1,7=5+2,7=5+1+1,…。程式設計求出正整數n的所有整數分解式子。
每個輸入包含乙個測試用例,即正整數n (0按遞增順序輸出n的所有整數分解式子。遞增順序是指:對於兩個分解序列n =和n2=,若存在i使得n1=m1,⋯,ni=mi,但是ni+1
該題目要求將乙個整數的分解因子的組合,全部輸出出來,該題可以用dfs深搜演算法去解決,通過遞迴和回溯來解決,例如,輸入7,從b=1開始累加a1,a2,a3,a4⋯an.,當b=7,就輸出該組合,當b>7時候,就回溯到上乙個節點開始累加,當小於時候,繼續累加,廢話不多說,直接上**。
#include
int b[30]
,c=0
,d=0
,m=0
;void
lemon
(int a)
//這裡應該使變數a 為全域性變數,讓主函式和分函式一起使用
該**,第一次我錯誤將a當作區域性變數傳遞給函式以及分解因子首位固定為1,而應該將a變成全域性變數以及e的值隨著分解因子的值所變化。
#include
int b[30]
,c=0
,d=-
1,m=
0,a;
//全域性變數方便函式與主函式操作
void
lemon
(int x)
m++;if
(m%4==0
)printf
("\n");
else
if(m%4!=
0&& d!=0)
printf
(";");
return;}
if(c>a)
//當值大於a時,回溯到上乙個節點,
return;if
(c//當值小於a時候,說明還未完全分解,繼續將整數分解。 }}
題目鏈結
7 37 整數分解為若干項之和 Python
7 37 整數分解為若干項之和 python 將乙個正整數n分解成幾個正整數相加,可以有多種分解方法,例如7 6 1,7 5 2,7 5 1 1,程式設計求出正整數n的所有整數分解式子。輸入格式 每個輸入包含乙個測試用例,即正整數n 0輸出格式 按遞增順序輸出n的所有整數分解式子。每個式子由小到大相...
7 37 整數分解為若干項之和 (20 分
將乙個正整數n分解成幾個正整數相加,可以有多種分解方法,例如7 6 1,7 5 2,7 5 1 1,程式設計求出正整數n的所有整數分解式子。輸入格式 每個輸入包含乙個測試用例,即正整數n 0輸出格式 按遞增順序輸出n的所有整數分解式子。序列之前輸出。每個式子由小到大相加,式子間用分號隔開,且每輸出4...
整數分解為若干項之和
將乙個正整數n分解成幾個正整數相加,可以有多種分解方法,例如7 6 1,7 5 2,7 5 1 1,程式設計求出正整數n的所有整數分解式子。輸入格式 每個輸入包含乙個測試用例,即正整數n 0輸出格式 按遞增順序輸出n的所有整數分解式子。遞增順序是指 對於兩個分解序列n 1 和n 2 若存在i使得n ...