说到递归,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 ;
}
}