|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
原帖子:http://bbs.fishc.com/thread-73449-1-1.html
题目:
分子为1的分数称为单分数。分母是 2 到 10 的单分数用十进制表示如下:
1/2 = 0.5
1/3 = 0.(3)
1/4 = 0.25
1/5 = 0.2
1/6 = 0.1(6)
1/7 = 0.(142857)
1/8 = 0.125
1/9 = 0.(1)
1/10 = 0.1
其中 0.1(6) 表示 0.166666...,因此它又一个长度为 1 的循环圈。可以看出 1/7 拥有一个 6 位的循环圈。
找出小于 1000 的数字 d,1/d 的十进制表示含有最长的循环圈。
附加题:
以下是斐波那契数列的递归定义:
那么其 12 项为:
因此第 12 项, ,是第一个包含三位数字的项。
斐波那契数列中第一个包含 1000 位数字的项是第几项?
我的思路:被n整除得到的结果放大一个列表中,余数放到另一个列表中,循环此过程,当余数为0结束循环,当余数与余数列表中数字重复结束循环,这时可计算出除法结果的循环小数的长度。----结果是983
附加题很简单,定义一个函数计算斐波那契,考虑到不会有n=1,2,在函数定义时就简化了。另外用yield节省内存。用for遍历直至len(str(n)) > 999。----结果是4782
答案正确的鱼油是:
caobynk 0.601s, 0.238s
Spicebush 0.121s, 0.240s
小剑剑 0.605s, 0.016s(为统一比较时间,我把程序拆成2个)
huomqh 0.437s, 0.021s
wangzhenas 0.118s, 0.223s
老忘 2.155s, 0.224s
bacon6581 0.343s, 0.215s
back0893 0.621s, ----
shichaoufo 0.619s, 0.122s
tengfei8382 ----, 0.222s
DingRan 0.369s, 0.236s
mather 0.335s, 0.223s
挥舞乾坤 0.319s, 0.046s
优秀的鱼油是:Spicebush wangzhenas
|
|