2024-04-24 10:50:56 发布
网友
m = 2 n =20 a,b = m,0 fib = [m] while a <= n: fib.append(a) a,b = a+b, a
因此,给定从m到n (and m < n)的两个变量,我需要创建一个列表,其中包含m和{}之间的Fibonacci序列的所有数字(但不能超过)例如:如果m = 2和{},那么{}应该是{}。在
m
n (and m < n)
m = 2
def fib(m,n): a,b = 1,1 while a < m: a,b = b, a+b answer = [a] while b < n: a,b = b, a+b answer.append(a) return answer In [2040]: fib(2,20) Out[2040]: [2, 3, 5, 8, 13]
我不知道如何在中途开始fibonnaci序列,所以我能想到的最好的方法是在之后过滤结果。
def f(low, high): fib = [0] a, b = 1, 0 while a <= n: fib.append(a) a,b = a+b, a return filter(lambda x: x >= low and x =< high, fib)
fibonacci代码很简单,您可能在这里看到的新东西是filter,它接受一个函数f和一个iterablex,并返回一个新的iterable,其中包含x中的所有元素,这样f(x)为真。
filter
f
x
f(x)
m = int(raw_input("Enter the start number : ")) n = int(raw_input("Enter the end number : ")) def fib(i): if i == 0: return 0 elif i == 1: return 1 else: return f(i-1)+f(i-2) print map(fib, range(m, n))
我希望这就是你需要的。
我不知道如何在中途开始fibonnaci序列,所以我能想到的最好的方法是在之后过滤结果。
fibonacci代码很简单,您可能在这里看到的新东西是
filter
,它接受一个函数f
和一个iterablex
,并返回一个新的iterable,其中包含x
中的所有元素,这样f(x)
为真。我希望这就是你需要的。
相关问题 更多 >
编程相关推荐