1樓:娛樂小八卦啊
這題主要考察遞迴函式的思想。**如下:
#include
int fbi(int i);//遞迴函式:輸出數列的第i項資料,這裡i從0開始計算。
int main()
else
}擴充套件資料
一個函式可以呼叫其他函式。如果這個函式在內部呼叫它自己,那麼這個函式就叫遞迴函式。遞迴函式的作用和迴圈的方法效果一樣,即遞迴函式本質上是一個方法的迴圈呼叫,注意:
有可能會出現死迴圈。因此,使用遞迴函式時,一定要定義遞迴的邊界(即什麼時候退出迴圈)。
注意:在實際使用中,遞迴函式由於消耗時間比較長(相比for迴圈和while迴圈),所以很少使用。要使遞迴函式有用,則遞迴函式必須有一個方法來控制遞迴呼叫的次數。
每次函式呼叫自己時,迴圈都會重複。現在應該能發現該函式的問題,因為它沒有辦法停止遞迴呼叫。這個函式就像一個無限迴圈,因為沒有**阻止它重複。
2樓:匿名使用者
private sub form_load()dim i as integer
form1.autoredraw = truefor i = 1 to 10
print fibonacci(i);
next i
end sub
private function fibonacci(byval n as integer) as long
dim f(32767) as long
if n = 1 or n = 2 thenfibonacci = 1
else
fibonacci = fibonacci(n - 1) + fibonacci(n - 2)
end if
end function
另外也可以用通項公式求得。如**。
3樓:風行少年
private sub form_click()dim l1 as long, l2 as long, l3 as long, f as long, n as integer
l1 = 1: l2 = 1
for n = 1 to 40
if n <= 2 then
f = 1
print f
else
l3 = l1 + l2
l1 = l2
l2 = l3
print l3
end if
next n
end sub
根據之前一版改的,因為當時還沒複習到函式和陣列,這個程式比較符合當的情境,其實有好幾種方法。
程式設計輸出斐波那契數列的前50項 vb
4樓:己曼寒
private sub command1_click()dim a(1 to 50) as integerfor i = 1 to 50
if i = 1 or i = 2 thena(i) = 1
else
a(i) = a(i - 1) + a(i - 2)end if
print i, a(i)
next i
end sub
vb程式設計題,列印fibonacci數列的前20項。該數列的第一項為0,第二項為1,從第三項開始,每
5樓:旅初彤
不對吧,fibonacci數列前面兩項都是1哦
用vb程式設計輸出3 200之間的所有素數
private sub command1 click for i 3 to 200 for j 2 to sqr i if i mod j 0 then exit fornext if j int sqr i then print inext end sub vb編寫程式找出3 100間所有素數並輸...
VB程式設計題目,vb程式設計題目
private sub command1 click dim k sum sum 0 k val trim inputbox 請輸入正整數k的值 for i 1 to len str k sum sum val mid str k i,1 next i msgbox sum end subpriva...
VB程式設計問題,VB程式設計中的迴圈問題
有個 自己去看吧,都是考試的。編一個求圓周長的程式。輸入半徑,得到周長和麵積。試試看。建議你不要光學vb,畢竟它有太多缺點,很多事做不了 如果是對basic語言感興趣的話,到不如去學哈freebasic,powerbasic,purebasic,它們都功能超級強大 freebasic甚至可以寫作業系...