《Python核心編程》第二版第97頁第五章練習 續四

來源:互聯網
上載者:User

和大家分享自己完成的《Python核心編程》答案。
因為不是來自官方資源,是自己的的練習,可能有誤或者並非最好的解決辦法。

5-13.
轉換。寫一個函數把小時和分鐘所表示的時間轉換成為只用分鐘錶示的時間。
【答案】
代碼如下:
def conversion(a, b):
    return a * 60 + b

time = raw_input('Please input the time in HH:MM format: ... ')
t = time.split(':')
print conversion(int(t[0]), int(t[1]))

5-14.
銀行利息。寫一個函數,以定期存款利率為參數,假定該賬戶每日計算複利,請計算並返回年回報率。
【答案】
代碼如下:
dayInterestRate = float(raw_input('Please input the day rate: ... '))
print (1. + dayInterestRate)**365 - 1

5-15.
最大公約數和最小公倍數。請計算兩個整型的最大公約數和最小公倍數。
【背景知識】
本題答案採用的是更相減損術,又稱“等值演算法”求兩個數的最大公約數,而兩個數的最小公倍數是他們的乘積除以最大公約數。
最小公倍數(Least Common Multiple,縮寫LCM)
最大公約數(Greatest Common Divisor,縮寫GCD;或Highest Common Factor,簡寫為HCF)
【答案】
代碼如下:
def GCD(a, b):
    i = 0   
    if (a % 2 == 0) and (b % 2 == 0):
        c = a / 2
        d = b / 2
        i = i + 1
    else:
        c = a
        d = b
    while c != d:
        if c > d: c = c - d
        elif c < d: d = d - c
        else: return c * (2 ** i)
    return c * (2 ** i)

def LCM(a, b):
    return a * b / GCD(a, b)

print GCD(4044, 9088)
print LCM(4044, 9088)

【參考】求最大公約數的演算法
http://blog.csdn.net/cauwtj/archive/2009/04/02/4043388.aspx
快速求最小公倍數的四種方法
http://www.hmtyxx.com/jiaoyu/ShowArticle.asp?ArticleID=1414

關鍵詞:Pyhon核心編程 第二版 答案 非官方

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.