關於函式遞迴我想說的,下面有乙個簡單的例子

2021-09-24 22:39:33 字數 371 閱讀 3607

function sum(n)

return sum(n-1)+n;

}alert sum(99);

1,必須有引數;

2,必須有return;

這個**呢其實就是你自己也不知道怎麼運算的就給你得出來了。

就是程式在執行的時候,

在求sum(99)的時候,它需要知道sum(99-1)+99是為多少,顯然if語句不會進入,就需要知道

sum(98)為多少,以此類推到sum(2)時就需要知道sum(1)為多少,if(n==1)就知道sum為1的時候等於1,也就知道sum(2)為多少,sum(2)知道了也就知道sum(3)為多少。以此類推.就是這樣,我的理解如果不對的話希望可以指正我

乙個關於遞迴的演算法。

從鍵盤輸入乙個整數 1 20 則以該數字為矩陣的大小,把1,2,3 n n 的數字按照順時針螺旋的形式填入其中。例如 輸入數字2,則程式輸出 1 24 3輸入數字3,則程式輸出 1 2 3 8 9 4 7 6 5 輸入數字4,則程式輸出 1 2 3 4 12 13 14 5 11 16 15 6 1...

乙個遞迴函式的分析

include include void pp char int char str abc int main void pp char s,int k else pp str 0 print當前的str pp str 1 pp str 0 print當前的str 結束pp呼叫 pp str 2 pp...

乙個簡單的lisp遞迴函式

defun mystery x y if null y nil if eql car y x 0 let z mystery x cdr y and z z 1 如果我們 mystery 6 019365 的話,就返回4。這個函式就是接受乙個實參和乙個列表,返回列表中第乙個和實參相等的元素前面有幾個...