Re: [問題] 排除輸出重複數值的方法
其實要用世界奇觀來解決重複值的部份是可行的,而且幾乎不用變動您的結構
主要是進入下一層迴圈時就要求 大於等於 上一層迴圈的值
既然後面的值都不會比前面的值小 (遞增數列) 自然不會再有左右對稱而重複的問題。
以下是小修後的原po程式碼,重點只有 ``range(a,x)`` ,即上述;
而加入 break 的判斷,只是避免不必要的走到迴圈深處,因為走進去也求不到值。
x = 4
N = 9
for a in range(1,x):
if a*8 > N: break
N -= a
for b in range(a,x):
if b*7 > N: break
N -= b
for c in range(b,x):
if c*6 > N: break
N -= c
for d in range(c,x):
if d*5 > N: break
N -= d
for e in range(d,x):
if e*4 > N: break
N -= e
for f in range(e,x):
if f*3 > N: break
N -= f
for g in range(f,x):
if g*2 > N: break
N -= g
for h in range(g,x):
if h*1 > N: break
if h == N: print (a,b,c,d,e,f,g,h)
N += g
N += f
N += e
N += d
N += c
N += b
N += a
pass
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.27.47
推
11/03 15:01, , 1F
11/03 15:01, 1F
→
11/03 15:02, , 2F
11/03 15:02, 2F
※ 編輯: apua 來自: 123.204.159.73 (11/03 15:45)
推
11/03 16:53, , 3F
11/03 16:53, 3F
→
11/03 17:36, , 4F
11/03 17:36, 4F
→
11/03 17:37, , 5F
11/03 17:37, 5F
推
11/03 17:37, , 6F
11/03 17:37, 6F
→
11/03 17:37, , 7F
11/03 17:37, 7F
推
11/03 18:09, , 8F
11/03 18:09, 8F
推
11/04 11:31, , 9F
11/04 11:31, 9F
推
11/05 11:22, , 10F
11/05 11:22, 10F
推
11/05 18:07, , 11F
11/05 18:07, 11F
討論串 (同標題文章)
完整討論串 (本文為第 5 之 6 篇):
問題
0
24