自定义函数Fib_n(n)计算斐波那契数列中第一次出现n位数字的是哪一项,返回项的序号及该数。输入待寻找的斐波那契数列中第一次出现的位数n,调用Fib_n()函数计算并输出满足要求的项的序号及数。
输入
[1,1000]范围内的一个整数
输出
第一次出现的该数长度的斐波那契数
样例输入
10
样例输出
Fib(45)=1134903170
我的问题是 如何递归?
自定义函数Fib_n(n)计算斐波那契数列中第一次出现n位数字的是哪一项,返回项的序号及该数。输入待寻找的斐波那契数列中第一次出现的位数n,调用Fib_n()函数计算并输出满足要求的项的序号及数。
输入
[1,1000]范围内的一个整数
输出
第一次出现的该数长度的斐波那契数
样例输入
10
样例输出
Fib(45)=1134903170
我的问题是 如何递归?
def fib_n(n):
if n == 1:
return 0, 0
else:
a = [0, 1]
i = 2
while True:
t = a[i-2] + a[i-1]
if len(str(t)) == n:
return t, i
a.append(t)
i += 1
b = int(input(">>>"))
s,j = fib_n(b)
print(f"Fib({j}) = {s}")