【问题标题】:No Output for the following "Fibonacci Series" code以下“斐波那契数列”代码无输出
【发布时间】:2019-06-02 22:31:41
【问题描述】:
n= int(input())
for i in range(n+1):
    def f(x):
        print(x)

        if i<=1:
            f(i)

        elif i>1:
            f(i-1) + f(i-2)

【问题讨论】:

  • 我认为您在这里有些困惑。您正在使用 def f(x): 在循环内定义函数 n + 1 次,但从不调用它。看起来您正在尝试同时使用递归和迭代方法。
  • 您没有基本情况,并且您在循环中定义了一个函数。这甚至可以运行吗?
  • 不是if和elif语句后调用的函数吗?
  • @BhavikRoopchandani 不在您显示的代码中。任何地方都没有调用 f(n)。即使这样,您的函数也缺少返回语句

标签: python fibonacci


【解决方案1】:

你需要先定义你的斐波那契函数,像这样:

def f(x):
    if(x <= 1):
        return x
    else:
        return (f(x - 2)+ f(x - 1))
n = int(input())
print(f(n))

【讨论】:

  • 可以将其缩短为 if x &lt;= 1: return x。也可以避免f(-1)之类的无限递归
  • 应该是&lt;==&lt; 是无效语法
猜你喜欢
  • 1970-01-01
  • 2017-05-15
  • 1970-01-01
  • 2014-05-19
  • 2015-06-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多