TQC+ Python 第2版|第六章「綜合應用二」詳解答案

BY PJ. -2025 年 7 月 15 日
(最後更新於: 2025 年 7 月 19 日)


Chapter 6 綜合應用二 習題

習題 1:大樂透中獎號碼

  • 題目描述
    大樂透中獎號碼為 6 個 1~49 間的數字,再加上一個特別號。請撰寫一程式,讓使用者隨機產生中獎號碼,並以小到大排序顯示。

  • 輸入輸出
    (a) 輸入說明:無
    (b) 輸出說明:6+1 個中獎號碼(因為是隨機產生亂數,所以每次的執行結果皆不同)

  • 範例

> 範例輸出1
大樂透中獎號碼為 6,10,19,25,31,43
大樂透特別號碼為 11
> 範例輸出2
大樂透中獎號碼為 1,2,14,30,32,33
大樂透特別號碼為 15
  • 參考解法
import random


nums = random.sample(range(1,50), 7)

main_number = nums[:6]
main_number.sort()
main_number = [str(x) for x in main_number]

special_number = str(nums[-1])
print('大樂透中獎號碼為',','.join(main_number))
print('大樂透特別號碼為',special_number)

習題 2:找出五位數

  • 題目描述
    有一個五位數「ABCDE」,其限制條件如下,請撰寫一程式找出符合要求的所有五位數:
    (a) A、B、C、D、E 分別代表五個不同的數字
    (b) A > E,B > D
    (c)「ABCDE」 + 「EDCBA」 = 163535

  • 輸入輸出
    (a) 輸入說明:無
    (b) 輸出說明:符合題目要求的所有五位數

  • 範例

> 範例輸出
98746
  • 參考解法
import itertools as it


for A,B,C,D,E in it.permutations(range(10), 5): #取得0-9五個數字所有排列:
    if A > E and B > D:
        num = 10000 * A + 1000 * B + 100 * C + 10 * D + E
        reverse_num = int(str(num)[::-1])

        if num + reverse_num == 163535:
            print(num)

習題 3:填入九個數字

  • 題目描述
    請撰寫一程式,在底下 a~i 標示的九個空格填入不重複的數字 1~9,使得三個分數相加的和為 1:

ch6公式

  • 輸入輸出
    (a) 輸入說明:無
    (b) 輸出說明:符合題目要求的九個數字組合

  • 範例

> 範例輸出
(5,3,4,7,6,8,9,1,2)
(5,3,4,9,1,2,7,6,8)
(7,6,8,5,3,4,9,1,2)
(7,6,8,9,1,2,5,3,4)
(9,1,2,5,3,4,7,6,8)
(9,1,2,7,6,8,5,3,4)
  • 參考解法
import itertools as it

for a,b,c,d,e,f,g,h,i in it.permutations(range(1,10),9):
    cal = a / (b * 10 + c) + d / (e * 10 + f) + g / (h * 10 + i)
    if cal == 1:
        print((a,b,c,d,e,f,g,h,i))


#TQC #Python #TQCPython第2版 #TQCPython第二版 #綜合應用二 #Python認證 #Python教學 #Python基礎證照 #Python入門

💬 留言區