- 论坛徽章:
- 0
|
本帖最后由 guoruimin 于 2010-06-25 12:57 编辑
回复 guoruimin
我把题目改改,从1,2,3,..,100的递增序列改成1,2,3,5,8,13,21,34的菲波拉契序列 ...
没本 发表于 2010-06-25 10:27 ![]()
要避免硬算,找出其中的规律,再用程序逻辑实现。就好比求 1 + 2 + 3 + ... + 9999999999999999 一样。
你出的这个题目够狠的!
你自己看看结果吧!1亿 X 一亿个灯泡才有两个亮的。- from math import sqrt
- lamp = 100000000 * 100000000
- def get_light(lamp):
- light = []
- a, b = 1, 2
- while a <= lamp:
- if int(sqrt(a)) ** 2 == a:
- light.append(a)
- a, b = b, a+b
- return light
- light = get_light(lamp)
- print ' '.join([str(x) for x in light])
复制代码 1 144
看来要请高人用数学证明一下,还有其它解没?
题目:菲波拉契序列中的完全平方数是否多于2个? |
|