7 37 整數分解為若干項之和

2021-10-02 03:02:34 字數 1404 閱讀 2096

將乙個正整數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 ...