我想要得到斐波那契數列的第48個元素 ,我可以存儲在64位整數中。我正在使用一個遞歸子程序,但它會一直持續下去。如果任何人都可以發現我的遞歸子程序有問題,我將非常感激。斐波那契遞歸函數需要永久
Integer (Int8) :: n
Integer (Int64) :: fib64
n = Int (48, Int8)
Call fibonacci_genr (fib64, n)
這裏是我的遞歸子程序
Recursive &
Subroutine fibonacci_genr &
( &
fb, n &
)
Integer (Int64), Intent (Out) :: fb
Integer (Int8), Intent (In) :: n
Integer (Int64) :: fb1, fb2
If (n < 2) Then
fb = Int (n, Int64)
Else
Call fibonacci_genr (fb1, n-1)
Call fibonacci_genr (fb2, n-2)
fb = fb1 + fb2
End If
End Subroutine fibonacci_genr
你有沒有計算出需要多少次調用來遞歸計算第48個斐波納契數? (提示:很多) –
只是把計數器放在你的子程序中並計算呼叫次數並打印出來 - 你會開悟的。 –
你可以記住你的答案,無需查看兩次。 – t3dodson