【问题标题】:Write a program that writes every other of the first 100 Fibonacci numbers.(Python)编写一个程序,每隔一个写入前 100 个斐波那契数。(Python)
【发布时间】:2020-09-22 18:30:32
【问题描述】:

我对 Python 还是很陌生,我什至不知道从哪里开始。如果有人可以提供帮助,将不胜感激:)

【问题讨论】:

  • 使用numpy.cumsum(list(range(1,101)))
  • StackOverflow 更像是一个询问有关现有代码的具体问题的网站。这个问题很可能会被关闭,因为它并不是网站上允许的格式。看看How to Ask 页面。

标签: python function file


【解决方案1】:

好吧,我会很快告诉你答案。

# First two numbers of fibonacci sequence
fib = [0, 1]

# Generate the fibonacci sequence
for i in range(98):
    # Sum the last two numbers and append it to fib
    fib.append(fib[-1] + fib[-2])
    
# for i in (0, 2, 4, 6...)
for i in range(0, 100, 2):
    print fib[i]

【讨论】:

    【解决方案2】:

    最基本的方法(虽然不是最有效的)如下。首先定义一个函数,计算某个地方的斐波那契数。这种迭代和递归有两种方法。

    递归(示例):

    def fib(n):
      if n < 0:
        raise Exception("Invalid Fib Input")
      elif n == 0:
        return 0
      elif n == 1:
        return 1
    
      return fib(n - 1) + fib(n - 2)
    

    迭代(示例):

    def fib(n):
      x = 0
      y = 1
      z = 1
      
      for i in range(0, n):
        x = y;
        y = z;
        z = x + y;
      
      return x;
    

    斐波那契数列的两种实现都可以。现在,我们可以运行以下代码来打印每隔一个斐波那契数。

    for i in range(1, 100, 2):
      print(fib(i))
    

    我们现在完成了。随时询问您是否需要更多说明。如果您想知道如何实现更高效的解决方案,请研究动态编程和存储中间值。

    【讨论】:

      猜你喜欢
      • 2014-04-26
      • 1970-01-01
      • 2019-03-15
      • 1970-01-01
      • 1970-01-01
      • 2023-02-02
      • 2014-08-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多