《程式設計師的演算法趣題》-(日)增井敏克 Python解題 -- (Q12)
阿新 • • 發佈:2018-12-14
《程式設計師的演算法趣題》-(日)增井敏克 , 書中為69 道數學謎題編寫了解題程式, 程式語言為:Ruby,JavaScript,C語言。有興趣的同學,可以購書閱讀~
在此更新個人編寫的Python版,僅供學習使用。(執行環境:Python3.6)
Q12 平方根數字
求在計算平方根的時候,最早讓 0~9 的數字全部出現的最小整數。注意這裡只求平方根為正數的情況,並且請分別求包含整數部分的情況和只看小數部分的情況。
例) 2的平方根 :1.414213562373095048… (0 ~ 9全部出現需要19位)
import math result = 1 while True: str_cal = "%.10f" % math.sqrt(result) str_cal = str_cal.replace('.', '') number_set = set() for number in str_cal[:10]: if number in number_set: break else: number_set.add(number) if len(number_set) == 10: print("含整數部分的最小整數為: %s" % result) break result += 1 result = 1 while True: str_cal = "%.10f" % math.sqrt(result) split_part = str_cal.split('.') if len(split_part) > 1: number_list = set([int(i) for i in split_part[1]]) if len(number_list) == 10: print("只看小數部分的最小整數為: %s" % result) break result += 1
執行結果:
含整數部分的最小整數為: 1362
只看小數部分的最小整數為: 143