-2

100 未満のフィボナッチ数列の数を計算しようとしていますが、作成したコードが機能しません。私が持っているものは次のとおりです。

def fib(n):
    if n == 0:
        return 0
    elif n == 1:
        return 1
    else:
        return fib(n-1) + fib(n-2)
num=0
while(num<100):
        print (fib(num))
        num+=1

これはうまくいくはずだと思いますが、うまくいかないので、間違いなく私のコーディングの問題です。誰でもこれを解決できますか?

4

1 に答える 1

1

では、このコードが機能していないのはどうですか? 実装は正しいように見えますが、もちろん遅いです。スタック トレースを減らし、24 の fib を計算しようとしているときに 23 の fib を再計算する必要がないようにするために、計算した数値を何らかのデータ構造に保存しようとすることができます。

于 2013-04-14T00:36:55.690 に答える