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 ...