和大家分享自己完成的《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核心編程 第二版 答案 非官方