[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...