问题描述:
The Fibonacci sequence is defined by the recurrence relation:
F n = F n1 + F n2, where F 1 = 1 and F 2 = 1.
Hence the first 12 terms will be:
F 1 = 1
F 2 = 1
F 3 = 2
F 4 = 3
F 5 = 5
F 6 = 8
F 7 = 13
F 8 = 21
F 9 = 34
F 10 = 55
F 11 = 89
F 12 = 144
The 12th term, F12, is the first term to contain three digits.
What is the first term in the Fibonacci sequence to contain 1000 digits?
翻译:
Fibonacci数列的定义如下:
Fn = Fn-1 + Fn-2,且F1 = 1, F2 = 1。
于是前12个Fibonacci数就是:
- F1 = 1
- F2 = 1
- F3 = 2
- F4 = 3
- F5 = 5
- F6 = 8
- F7 = 13
- F8 = 21
- F9 = 34
- F10 = 55
- F11 = 89
- F12 = 144
第十二项F12,是第一个达到三位数的Fibonacci数。
第一个达到1000位的Fibonacci数又是多少呢?
解答:
def isok(a):
count=0
while a>0:
a/=10
count+=1
if count==1000:
return True
return False
a,b,c=1,1,0
count=2
while True:
c=a+b
count+=1
if isok(c):
break
a=b
b=c
print count