斐波那契不输出 0
fibonacci doesn't output 0
我写了一个简短的代码,它输出斐波那契数列的前 n 个数字,其中 n 是传递参数的值,每个数字都打印在一个新行中。
我的问题是输出不是从 0 开始,而是从 1 开始。如何在输出中也得到 0?
def fibonacci(n):
fib1 = 0
fib2 = 1
for x in range(0,n):
print("%d\n" %(fib2), end = " ")
next = fib1 + fib2
fib1 = fib2
fib2 = next
原来是这样输出的,为什么第一个移进去之后的数字是?
output
def fibonacci(n):
fib1 = 0
fib2 = 1
for x in range(0,n):
print("%d\n" %(fib1), end = " ")
next = fib1 + fib2
fib1 = fib2
fib2 = next
在 line #5
处简单打印 fib1
而不是 fib2
如果打印 fib2
即 1
,您如何期望开始时的输出 0
您可以使用:
def fibonacci(n):
fib1 = 0
fib2 = 1
for x in range(0, n):
print("%d" %(fib1))
fib1, fib2 = fib2, fib1 + fib2
或者,您可以只切换 fib1
和 fib2
的值,而不会再弄乱您的代码。
如其他示例中所述,您可以解决您的问题。我正在分享更多的方法。更短的代码
def fibonacci_fun(n):
a, b = 0, 1
for x in range(2, n):
print('%s' % a)
a, b = b, a+b
fibonacci_fun(n)
另一种使用 while 循环的方法
def fibonacci(n):
a, b = 0, 1
while a <= n:
print(a)
a, b = b, a+b
fibonacci(n)
我写了一个简短的代码,它输出斐波那契数列的前 n 个数字,其中 n 是传递参数的值,每个数字都打印在一个新行中。 我的问题是输出不是从 0 开始,而是从 1 开始。如何在输出中也得到 0?
def fibonacci(n):
fib1 = 0
fib2 = 1
for x in range(0,n):
print("%d\n" %(fib2), end = " ")
next = fib1 + fib2
fib1 = fib2
fib2 = next
原来是这样输出的,为什么第一个移进去之后的数字是? output
def fibonacci(n):
fib1 = 0
fib2 = 1
for x in range(0,n):
print("%d\n" %(fib1), end = " ")
next = fib1 + fib2
fib1 = fib2
fib2 = next
在 line #5
处简单打印 fib1
而不是 fib2
如果打印 fib2
即 1
0
您可以使用:
def fibonacci(n):
fib1 = 0
fib2 = 1
for x in range(0, n):
print("%d" %(fib1))
fib1, fib2 = fib2, fib1 + fib2
或者,您可以只切换 fib1
和 fib2
的值,而不会再弄乱您的代码。
如其他示例中所述,您可以解决您的问题。我正在分享更多的方法。更短的代码
def fibonacci_fun(n):
a, b = 0, 1
for x in range(2, n):
print('%s' % a)
a, b = b, a+b
fibonacci_fun(n)
另一种使用 while 循环的方法
def fibonacci(n):
a, b = 0, 1
while a <= n:
print(a)
a, b = b, a+b
fibonacci(n)