第2期-求100以內奇數和


1 解題思路

對100以內的奇數求和,有四種常見的解題方法:

  • 用range函數遍歷100以內的奇數,然后用sum函數求和
  • for 循環嵌套if語句,將100以內的奇數相加求和
  • while循環將100以內的奇數相加,並打印求和
  • 用遞歸方法求和

2 解題方法

方法一: sum函數

1 print(sum(range(1, 100, 2)))

首先用range函數創建了一個整數列表,range(1, 100, 2)表示取值為1-100(不包括100)的整數,步長為2,輸出的值為1,3,5……99

更多關於range函數的用法查看第1期-九九乘法表(opens new window)

然后用sum函數對100以內的奇數求和
最后用print函數將求和結果打印出來

這行代碼充分體現了Python 語言的簡潔性!!!

方法二: for循環

count = 0

for number in range(100):
    if number % 2 == 0:
        continue
    count += number
    
print(count)

第1行: 設置一個變量count, 初始賦值為0
第3行: 用for循環遍歷100以內所有的整數
第4-6行: 用if語句判斷100以內的數是否為奇數,是奇數就相加(if i % 2 == 0,continue的含義是當數字為偶數時退出本次循環)
第8行: 用print函數打印其和

這是我們在Python基礎交互課第六章循環部分講過的知識點,忘記了的小伙伴可以再學習下課程哦~

方法三: while循環

count = 0
number = 1

while number < 100:
    count += number
    number += 2
    
print(count)

第1-2行: 設置一個變量count ,初始賦值為0,變量number初始賦值為1
第4-6行: 設定while循環的運行條件(number < 100)及執行語句(count += number;number += 2)
第8行: 用print函數打印其和

方法四: 遞歸求和

def sum(x):
    if x > 99:
        return 0
    else:
        count = sum(x + 2)
        return x + count
print(sum(1))
View Code

先看下什么是遞歸:
遞歸(Recursion)
遞歸是一種解決問題的思路,其精髓在於將問題分解為規模更小的相同問題,直到問題規模小到可以用非常簡單直接的方式來解決,其算法方面的明顯特征就是:在算法流程中調用自身。

也可以說在函數內部調用自己的函數被稱之為遞歸

遞歸算法三定律:

  • 必須要有結束條件(最小規模問題的直接解決)
  • 必須能向結束條件演進(減小問題規模)
  • 必須調用自身(解決減小了規模的相同問題)

在這段代碼中,
第1行: 用def定義 sum 函數,傳入參數 x
第2-3行: 設定這個設定遞歸算法的結束條件(if x > 99,return 0)
第4-6行: 在算法流程中調用sum函數自身,通過 return函數執行語句
第7行: 為x賦值為1,用print函數打印運算結果

上述四種方法的運行結果為:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM