《程序员的算法趣题》-(日)增井敏克 Python解题 -- (Q12)

《程序员的算法趣题》-(日)增井敏克 , 书中为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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值