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

2021-10-06 10:36:35 字數 1287 閱讀 3401

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

將乙個正整數n分解成幾個正整數相加,可以有多種分解方法,例如7=6+1,7=5+2,7=5+1+1,…。程式設計求出正整數n的所有整數分解式子。

輸入格式:

每個輸入包含乙個測試用例,即正整數n (0輸出格式:

按遞增順序輸出n的所有整數分解式子。每個式子由小到大相加,式子間用分號隔開,且每輸出4個式子後換行。

n =

int(

input()

)def dfs

(n, path, res)

:for i in

range(1

, n +1)

:iflen(path)

!=0 and i < path[-1

]:continue

else

: path.

(i)if

sum(path)

> n:

path.

pop(

)break

elif sum

(path)

== n:

res.

(path[:]

) path.

pop(

)break

else

:dfs

(n, path, res)

path.

pop(

)res =

#儲存全部結果

path =

dfs(n, path, res)

i =1

for t in res[:-

1]: t =

list

(map

(str, t)

)if i %4==

0:print

("{}={}"

.format

(n,"+"

.join

(t))

)else

:print

("{}={}"

.format

(n,"+"

.join

(t))

, end=

";")

i +=

1t =

list

(map

(str, res[-1

]))print

("{}={}"

.format

(n,"+"

.join

(t))

)

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

將乙個正整數n分解成幾個正整數相加,可以有多種分解方法,例如7 6 1,7 5 2,7 5 1 1,程式設計求出正整數n的所有整數分解式子。每個輸入包含乙個測試用例,即正整數n 0按遞增順序輸出n的所有整數分解式子。遞增順序是指 對於兩個分解序列n 和n2 若存在i使得n1 m1,ni mi,但是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 ...