利用遞迴的方式來解決問題,是非常直接 方便 快速的
一種 解題方法。
遞迴的缺點是 :會增加電腦的負荷,
使程式變慢。
但是,目前的PC 已經足過快速,所以 大部分的時候,
鼓勵使用遞迴的方式來寫程式
[code]
! begin of main()
implicit none
integer no, f1, f2
real r1, r2
integer fs !for function 費氏數列
r2= (1.0 + sqrt(5.0))/2.0
print *, 'r2= ', r2
print *, '費氏數列的前後兩項的比值 會趨近於 黃金分割'
! -----------------------------------------------
! 以費氏數列 示範遞迴程式的寫作
do no=1, 35, 1
f1= fs(no+1)
f2= fs(no)
r1= float(f1)/float(f2)
print *, 'no= ', no, 'f1= ', f1, ', f2= ', f2, ', r1= ', r1
end do
end
! -----------------------------------------------
recursive integer function fs(no)
implicit none
integer no
if (no <= 1) then
fs= 1
return
else
fs= fs(no-1) + fs(no-2)
return
end if
end
[/code]
沒有留言:
張貼留言