第5類:函式(Function)

TQC+ 程式語言Python 509 最簡分數

題目說明:

請撰寫一程式,讓使用者輸入二個分數,分別是x/y和m/n(其中x、y、m、n皆為正整數),計算這兩個分數的和為p/q,接著將p和q傳遞給名為compute()函式,此函式回傳p和q的最大公因數(Greatest Common Divisor, GCD)。再將p和q各除以其最大公因數,最後輸出的結果必須以最簡分數表示。

範例輸入1

1,2
1,6

範例輸出1

1/2 + 1/6 = 2/3

範例輸入2

12,16
18,32

範例輸出2

12/16 + 18/32 = 21/16
 

程式碼:

import math

def compute(p, q):
    return math.gcd(p, q)

x, y = eval(input())
m, n = eval(input())
p = (x * n + m * y) / compute(x * n + m * y, y * n)
q = (y * n) / compute(x * n + m * y, y * n)

print('%d/%d + %d/%d = %d/%d' %(x, y, m, n, p, q))

 

TQC+ 程式語言Python 第5類:函式(Function)





如果覺得文章內容還不錯的話,麻煩請幫我點個讚!感謝

可以多點幾次喔~~

第一次點讚需使用 Google 或 Facebook 帳號註冊

2 則留言

    • JamesBang

      因為最後要變成最簡分數,所以需要使用到 math 套件的 gcd 方法,算出最後的分子和分母的最大公因數(要將分子和分母除以這個最大公因數,才能算出最簡分數。),因此在一開始匯入 math 套件。

      compute 函式要帶入兩個參數,就是分子和分母,然後呼叫 math 套件的 gcd 方法,再將算出來的最大公因數回傳(return)。

      變數 x, y, m, n 就是使用者輸入的值(y 分之 x 和 n 分之 m)、
      p 為兩數相加後的分子、
      q 為兩數相加後的分母。

      要將這兩個分數相加,最直接的方法就是換成相同分母,所以 q 的部分直接將 y 乘以 n 就好,然後因為要算成最簡,所以再除以 p 和 q 的最大公因數。

      p 同上

      最後 print 輸出

發表迴響取消回覆

Exit mobile version