且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Java中函数的递归调用

更新时间:2022-05-21 03:19:26

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