5-5 Python之 while循環
任務是利用while循環計算100以內奇數之和。
各位前輩請指教我寫的答案和標準答案有何不同,感謝!
標準答案:
sum=0
x=1
while x<100:
sum=sum+x
x=x+2
print sum
我的答案:
sum=0
x=1
while x<100:
x=x+2
sum=(1+100)*100/2
print sum
不明白的點:
1.既然是奇數之和,不應該用等差數列求和公式嗎? 為什么答案寫的是sum=sum+x
2.要求奇數,當x=1, 則x=x+1 is Ture,
當x=2,則x=x+2 依然是偶數,如何讓程序判定新x一直都是奇數呢?
感謝!??!
2019-01-20
1、如果使用等差數列求和就不需要使用循環了,直接一個數學公式就可以求了,答案中的sum,是循環到本次前全部的和,第一次循環sum = sum+x就是sum = 0+1 ,x=x+2 就是 x=1+2,然后第一次循環完了就會執行第二次,知道當x<100不成立。
2、判斷是否為奇數可以使用除以2求余等于1還是0來判斷,但這里不需要,這里只用你最開始設置x=1 每次循環讓x=x+2便可以控制它每次都是奇數。
循環相當于就是直接計算1+3+5+這樣一直加到最后一個,而不是運用了求和公式。
2019-01-20
1:可以使用等差數列求和公式,人在計算時更傾向于使用求和公式,但是計算機是運行速度很快的機器,更擅長于做機械性的重復性的工作。sum=sum+x就是硬算,一個一個的去加起來。
2:程序中,x=1,x=x+2,保證了x都是奇數。
另外可以用if判斷語句
if not x%2:
? ? sum = sum + x
2019-01-20
等差數列你不應該只有五十項嗎