python基礎練習100題(11-20)

11. 古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數爲多少?

其實理解清楚之後就是斐波那契數列

if __name__ == '__main__':
    # 其實就是斐波那契數列
    a, b = 1, 1
    m = int(input())
    print("2")
    for i in range(m - 1):
        print(b * 2)
        a, b = b, a + b

12. 判斷101-200之間有多少個素數,並輸出所有素數

通過遍歷當前數字平方根並且判斷當前數字是否能夠整除來判斷是否是素數

from math import sqrt

if __name__ == '__main__':
    res = []
    count = 0
    # 規定一個範圍
    for i in range(101, 201):
        m = int(sqrt(i))
        f = 1
        for j in range(2, m + 1):
            if i % j == 0:
                f = 0
                break
        if f == 1:
            # 在列表中添加素數最後一併輸出
            res.append(i)
            count += 1
    # 使用逗號分隔需要輸出的各個變量
    print(res, count)

13. 打印出所有的"水仙花數"

if __name__ == '__main__':
    # 水仙花數是一個三位數,所以只需要檢查所有的三位數字是否滿足條件即可, 注意range函數取不到第二個參數這個位置爲前一個位置
    for i in range(100, 1000):
        # 當前數字除10取餘爲第三位數字, 除以10取餘爲第二位數字, 除以100爲第三位數字
        a = i % 10
        # 注意兩槓是整除
        b = i // 10 % 10
        c = i // 100
        # 計算a的n次冪, 也可以這樣寫:a ** 3 + b ** 3 + c ** 3:
        if pow(a, 3) + pow(b, 3) + pow(c, 3) == i:
            print(i)

14. 將一個正整數分解質因數。例如:輸入90,打印出90=2*3*3*5

from math import sqrt
# 下面這個函數檢查當前的數字n是否是素數
def check(n):
    m = int(sqrt(n))
    for i in range(2, m + 1):
        if n % i == 0:
            return False
    return True


if __name__ == '__main__':
    n = int(input())
    res = []
    if check(n): print(n)
    else:
        # 不是素數, 需要進行分解, 注意不是素數的語句判斷
        while not check(n):
            if n % 2 == 0:
                res.append(2)
                n //= 2
            elif n % 3 == 0:
                res.append(3)
                n //= 3
            elif n % 5 == 0:
                res.append(5)
                n //= 5
            elif n % 7 == 0:
                res.append(7)
                n //= 7
        res.append(n)
    print(res)

15. 利用條件運算符的嵌套來完成此題:學習成績>=90分的同學用A表示,60-89分之間的用B表示,60分以下的用C表示。

if __name__ == '__main__':
    score = int(input('輸入分數: '))
    if score >= 90:
        grade = '優秀'
    elif score >= 60:
        grade = '良好'
    else:
        grade = '差勁'
    # 格式化輸出語句
    print("分數:%d 等級:%s" % (score, grade))

16. 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章