day3 分之和迴圈練習

一紙青塵染流年發表於2020-09-24

基礎題

  1. 根據輸入的成績的範圍列印及格 或者不及格
score = int(input("請輸入成績:"))
if score >= 60:
    print("及格")
else:
    print("不及格")
  1. 根據輸入的年紀範圍列印成年或者未成年,如果年齡不在正常範圍內(0~150)列印這不是人!
age = int(input("請輸入年紀:"))
if 18 <= age <= 150:
    print("成年人")
elif 0 <= age < 18:
    print("未成年人")
else:
    print("這不是人!")
  1. 輸入兩個整數a和b,若a-b的結果為奇數,則輸出該結果,否則輸出提示資訊a-b的結果不是奇數
a = int(input("請輸入整數a:"))
b = int(input("請輸入整數b:"))
if (a-b) % 2:
    print("奇數")
else:
    print("a-b的結果不是奇數")
  1. 使用while迴圈輸出 0~100內所有3的倍數。
num = -1
while True:
    num += 1
    if num % 3 != 0:
        continue
    else:
        if 0 <= num <= 100:
            print(num)
        else:
            break
  1. 使用while迴圈輸出0~100內所有的偶數。
num = -1
while True:
    num += 1
    if num % 2 != 0:
        continue
    else:
        if 0 <= num <= 100:
            print(num)
        else:
            break

進階題

  1. 使用迴圈計算1*2*3*4*...*10的結果。
a = 1
for i in range(1, 11):
    a *= i
print(a)
  1. 統計100以內個位數是2並且能夠被3整除的數的個數。
count = 0
for i in range(101):
    if i % 10 == 2 and i % 3 == 0:
        count += 1
print(count)
  1. 輸入任意一個正整數,求他是幾位數?

    注意: 這兒不能使用字串,只能用迴圈

num = int(input("請輸入一個正整數:"))
num1 = 0
while True:
    num1 += 1
    if num // 10**num1 == 0:
        print("這是一個%d位數" %num1)
        break
    else:
        continue
  1. 列印出所有的水仙花數,所謂水仙花數是指一個三位數,其各位數字⽴方和等於該數本身。例如:153是

    ⼀個⽔仙花數,因為 1³ + 5³ + 3³ 等於 153。

    for i in range(100, 1000):
        a = i // 100
        b = i // 10 % 10
        c = i % 100 % 10
        if a**3 + b**3 + c**3 == i and i < 1000:
            print("這是一個水仙花數:", i)
    

挑戰題

  1. 判斷指定的數是否是素數(素數就是質數,即除了1和它本身以外不能被其他的數整除的數)
num = int(input("請輸入一個數:"))
if num < 2:
    print("是素數")
else:
    for i in range(2, num):
        if num % i == 0:
            print("這不是素數")
            break
    else:
        print("是素數")
  1. 求斐波那契數列列中第n個數的值:1,1,2,3,5,8,13,21,34… (這兒的n可以是任意正整數,可以通過輸入來確定)
a1 = 0
a2 = 1
count = 2
if num <= count:
    print("值為:", a1 + a2)
else:
    while count < num:
        n = a1 + a2
        a1 = a2
        a2 = n
        count += 1
print(n)
  1. 輸出9*9口訣。 程式分析:分行與列考慮,共9行9列,i控制行,j控制列。
for j in range(1, 10):
    for i in range(1, j+1):
        num = i * j
        if i < j:
            print("%d * %d = %d" % (i, j, num), end=" ")
        else:
            print(i, "*", j, '=', num, end=" ")
    print()
  1. 這是經典的"百馬百擔"問題,有一百匹馬,馱一百擔貨,大馬馱3擔,中馬馱2擔,兩隻小馬馱1擔,問有大,中,小馬各幾匹?(可以直接使用窮舉法)
while True:
    for x in range(101):
        for y in range(101):
            for z in range(101):
                if x + y + z == 100 and x*3 + y*2 + z*1/2 == 100:
                    print("%d種大馬,%d種中馬,%d種小馬"%(x, y, z))
    break

相關文章