java中的遞迴呼叫

2021-08-29 18:54:53 字數 1236 閱讀 6300

[b]1、遞迴函式的定義: [/b]

答:遞迴函式即自呼叫函式,在函式體內直接或間接的呼叫自己,即函式的巢狀是函式本身。

2、遞迴方式:遞迴呼叫有直接遞迴和間接遞迴兩種方式。

a:直接遞迴:在函式中出現呼叫函式本身。

示例1:下面**求斐波那契數列第n項,斐波那契數列第一和第二項是1,後面每一項是前兩項之和,即1、1、2、3、5、8、13 ...。

程式**:

public class test

system.out.println("sum=" + sum);

} public static int func(int x)

} b:間接遞迴:指函式中呼叫了其他函式,而該其他函式有呼叫了本函式。

示例2:用間接遞迴來計算上述斐波那契數列。

程式**:

public class test

system.out.println("sum=" + sum);

} public static int func1(int a)

public static int func2(int b)

} 3、為什麼要用遞迴函式?遞迴函式的缺點是什麼?

答:遞迴的目的是簡化程式設計,使程式易讀。

示例3:下面不用遞迴函式繼續來計算上述斐波那契數列。

程式**:

public class test

system.out.println("sum=" + sum);

} }

從上面例子我們可以發現雖然非遞迴函式效率高,但較難程式設計,可讀性較差。遞迴函式的缺點是增加了系統開銷,也就是說,每遞迴一次,棧記憶體就多占用一截。

4、遞迴的條件:

答:需有完成任務的語句,需滿足遞迴的要求(減小而不是發散)。

5、遞迴高階:

示例4:

程式設計求解:若一頭小母牛,從出生起第四個年頭開始每年生一頭母牛,按次規律,第n年時有多少頭母牛?

程式**:

public class test3

public static int cattle(int n)

} 規律:此類問題的遞迴函式為:

如果要求的是從出生起第四個年頭,則遞迴函式為cattle(n-1)+ cattle(n-3),

如果要求的是從出生起第五個年頭,則遞迴函式為cattle(n-1)+ cattle(n-4),

。。。。

依次類推。

java 遞迴呼叫

遞迴呼叫是呼叫自身的函式,並傳給自身的相應的引數,這一運算過程是一層層的進行的,直到滿足一定條件時,才停止呼叫。遞迴函式的特點 1.函式要直接或間接呼叫自身。2.要有遞迴終止條件檢查,即遞迴終止的條件被滿足後,則不再呼叫自身函式。3.如果不滿足遞迴終止的條件,則呼叫涉及遞迴呼叫的表示式 在呼叫函式自...

JAVA 中的遞迴

所謂遞迴,是指程式呼叫自身,當然,遞迴不會無休止地呼叫下去,它必然有乙個出口,當滿足條件時程式也就結束了,不然的話,那就是死迴圈了。看下面這個類,有幾個遞迴方法,看了之後肯定會對你學習遞迴很有幫助的。遞迴類recursion的定義 public class recursionelse 遞迴方法sum...

java中的遞迴

所謂遞迴,是指程式呼叫自身,當然,遞迴不會無休止地呼叫下去,它必然有乙個出口,當滿足條件時程式也就結束了,不然的話,那就是死迴圈了。看下面這個類,有幾個遞迴方法,看了之後肯定會對你學習遞迴很有幫助的。遞迴類recursion的定義 public class recursionelse 遞迴方法sum...