天天看點

java中的遞歸調用_Java中函數的遞歸調用

說到遞歸,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 ;

}

}