使用函数输出指定范围内的斐波那契数(Fibonacci):满足任意一项的数字都是前两项的数字之和(最初始两项均为1)
要求:实现一个计算Fibonacci数的简单函数:fib(n),并利用其实现另一个函数并输出两个正整数m和n(0<m<n<=100000)之间的所有Fibonacci数。fib(n)返回第n项的Fibonacci数列,PrintFN(m,n)在一行中输出给定范围[m,n]内的所有Fibonacci数,按照从小到大顺序排序,相邻数字间有空格间隔;如果给定区间内没有Fibonacci数,则输出一行“No Fibonacci number”。
def fib(n):
a,b=1,1
lis=[]
while a<n:
lis.append(a)
a,b=b,a+b
return lis
def PrintFN(m,n):
lis2=[]
for i in range(m,n):
if i in fib(n):
lis2.append(i)
if lis2==[]:
return 'No Fibonacci number'
else:
return lis2
m=int(input('请输入一个正整数:'))
n=int(input('请输入一个比m大的正整数:'))
print(fib(n))
print(PrintFN(m,n))