說到遞歸,java中的遞歸和C語言中也是很相似的,在Java中,遞歸其實就是利用了棧的先進後出的機制來描述的。
public class HelloWorld {
public static void main(String[] args){
//Scanner s = new Scanner(System.in);
//System.out.println("請輸入一個數字");
//int num = s.nextInt();
int c = 10 , d = 20 ;
swep(c,d);
System.out.println("c="+c+"d"+d);
//java中使用記憶體時,直接把記憶體氛圍堆,棧記憶體。
//堆:通過垃圾回收器回收記憶體。
//棧:用完自動釋放,先進後出。
//是以上面的c,d和swep裡面的a,b沒有任何關系
//這點和C語言是類似的。
//下面示範的是棧的先進原理--->Java函數方法的遞歸調用
long ret = jiecheng1(5);
System.out.println(ret);
int fei = GetNdata(8) ;
System.out.println(fei);
}
//Java中簡單遞歸調用--->和C類似 利用棧的先進後出的原理
public static long jiecheng1(int n){
if(n == 1)
return 1 ;
return jiecheng1(n-1)*n;
}
//斐波那契數列 擷取第N項的數
public static int GetNdata(int n)
{
if(n == 1 || n == 2)
return 1 ;
return GetNdata(n-1) + GetNdata(n-2) ;
}
public static long jiecheng(int n){
int t= 1 ;
for(int i = 1 ; i < n ; i++){
t *= i ;
}
return t ;
}
public static void swep(int a , int b){
int t = a ;
a = b ;
b = t ;
}
}