#79: 不用for的解法


whsh410526 (張曜麟)

學校 : 不指定學校
編號 : 12852
來源 : [61.216.106.5]
最後登入時間 :
2026-06-25 11:36:58
a030. 連續整數相加(二) | From: [61.216.106.5] | 發表日期 : 2026-06-25 11:49

思路:用range產生連續數字迭代器,然後用*解開迭代器。即*range(1,5) 會是[1,2,3,4]

接著用小學二年級就學過的等差級數和公式"頭尾相加;乘以項數;除以2"算出相加的解答

print可以設分隔和結尾

所以

print(*range(a,b-1,-1),sep="+",end=f"={int(((a+b)*a-b+1)/2)}") 

翻譯為:打印內容*range(a,b+1,1),間隔為"+",結尾為f字串"={a+......+b}"

用int是因為除法會有小數點,但其實也可以用//替代/,就不會有小數點了

 

 

完整像這樣

先輸入 a,b=map(int,input().split())

if a==b:

例外狀況  print(f"{a}={a}")

elif a>b:

狀況一  print(*range(a,b-1,-1),sep="+",end=f"={int(((a+b)*a-b+1)/2)}") 

else:

狀況二  print(*range(a,b+1,1),sep="+",end=f"={int(((a+b)*b-a+1)/2)}")

 
ZeroJudge Forum