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