使用Python的斐波那契序列
您好,我正在尝试编写一个脚本,提示用户输入整数(n),然后按该顺序打印所有小于或等于输入的斐波那契数。 例如: 输入一个数字:14 输出为:1 1 2 3 5 8 13 这是我到目前为止得到的,但不确定这是否是最有效的方法?它工作正常,但我想知道是否有更简单的方法来清理这个使用Python的斐波那契序列,python,while-loop,anaconda,fibonacci,Python,While Loop,Anaconda,Fibonacci,您好,我正在尝试编写一个脚本,提示用户输入整数(n),然后按该顺序打印所有小于或等于输入的斐波那契数。 例如: 输入一个数字:14 输出为:1 1 2 3 5 8 13 这是我到目前为止得到的,但不确定这是否是最有效的方法?它工作正常,但我想知道是否有更简单的方法来清理这个 n = int(input("Enter a number: ")) a = 0 b = 1 sum = 0 while(sum <= n): print(sum, end = "
n = int(input("Enter a number: "))
a = 0
b = 1
sum = 0
while(sum <= n):
print(sum, end = " ")
count += 1
a = b
b = sum
sum = a + b
print(end = " ")
n=int(输入(“输入一个数字”))
a=0
b=1
总和=0
而像这样的事情呢
n = int(input("Enter a number: "))
fib = [0, 1]
while fib[-1] + fib[-2] <= n:
fib.append(fib[-1] + fib[-2])
print(fib)
n=int(输入(“输入一个数字”))
fib=[0,1]
而fib[-1]+fib[-2]是这样的吗
n = int(input("Enter a number: "))
fib = [0, 1]
while fib[-1] + fib[-2] <= n:
fib.append(fib[-1] + fib[-2])
print(fib)
n=int(输入(“输入一个数字”))
fib=[0,1]
虽然fib[-1]+fib[-2]这种方法足够有效,但您的代码可以做得更好
n = int(input("Enter a number: "))
a = b = 1
while(b <= n):
print(b, end = " ")
a, b = b, a + b
n=int(输入(“输入一个数字”))
a=b=1
虽然(b这种方法足够有效,但是您的代码可以做得更好
n = int(input("Enter a number: "))
a = b = 1
while(b <= n):
print(b, end = " ")
a, b = b, a + b
n=int(输入(“输入一个数字”))
a=b=1
虽然(b我不太喜欢上面的方法,因为数字序列是无限的,而内存分配不是无限的。因此,为了有效地获得可能最高的可计算数字(当然是通过您的计算机),应该明确使用生成器。
ITERATIONS = 100
def fibo():
a, b = 0, 1
while True:
a, b = b, a + b
yield b
f = fibo()
for _ in range(ITERATIONS):
print(next(f))
!但请记住,如果您尝试类似于列表(f)
的操作,您的计算机将100%崩溃,因为数字序列是无限的,而您的计算机电源和存储不是无限的
有一个好的。我不太喜欢上面的方法,因为数字序列是无限的,而内存分配不是无限的。因此,为了有效地获得可能最高的可计算数字(当然是通过您的计算机),应该明确地使用生成器。
ITERATIONS = 100
def fibo():
a, b = 0, 1
while True:
a, b = b, a + b
yield b
f = fibo()
for _ in range(ITERATIONS):
print(next(f))
!但请记住,如果您尝试类似于列表(f)
的操作,您的计算机将100%崩溃,因为数字序列是无限的,而您的计算机电源和存储不是无限的
有一个很好的方法。按原样,它甚至不运行。它也会先打印0。它足够干净,如下面的答案所示,只声明两个变量而不使用sum
不是编码约定的最佳实践。我发现这个方法可以帮助您:按原样,它甚至不运行。它也会先打印0。它足够干净,如下面的答案所示,只声明2 va没有sum
的变量并不是编码约定的最佳实践。我发现这一个可以帮助您:您正在执行两次加法,这根本不是非常优化。是的,存储该总和可能会带来一些改进。在循环内打印到屏幕也不好,这就是为什么我建议将序列存储在列表中。您正在执行两次加法,这根本不是很优化。是的,存储该总和可能会带来一些改进。打印到循环内的屏幕也不好,这就是为什么我建议将序列存储在列表中。您可以检查此问题的解决方案,您可以检查此问题的解决方案