プログラミング例再帰関数

N番目のフィボナッチを探します

  1 1 2 3 5 8 ......

この方法の一つ:

DEF (N)fbnq:
     IFのn == 1 または N - == 2 あなたは、このような1、2のように、他から開始したい場合は第一及び第二の数は数1での#は、n == 1をカスタマイズする必要がありますときリターン1、N == 2 2リターン
        リターン 1
     戻り fbnq(N - 1)+ fbnq(N - 2)     ここでは、我々はに戻らなければならない 
のn- = INT(INPUT(" あなたが最初の数フィボナッチをお願いしたいと思いますリースの数- ?" ))
、F = fbnq(N-)
 を印刷(F)

  この時点で、#は、小さなメモリには適していません2再帰的な例を必要とし、

方法2:

DEFの fbnq2(N、L = [0]):
    L [0] + = 1。
     IF N - == 2 
        L [0] - = 1つの
         戻り 1,1
     ほか
        A、B = fbnq2(1-N-。 
        L [ 0] - 。1 =          N-2、減少するとき、L [0] = - N + 1、 Lまで徐々に戻す[0] == 0、値が返され、代わりに(A + b)の
        IF L [0] == 0:
             リターン A + Bの
         リターン B、A + B 

のn = INT(INPUT(" ?あなたが最初の数フィボナッチをお願いしたいと思います- " ))
、F = fbnq2(N-)
 を印刷(F)

この時点で#より完璧な、それは大きなフィボナッチを計算するのは簡単です

おすすめ

転載: www.cnblogs.com/lowislucifer/p/11294216.html