java递归_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > java递归

java递归

 2017/6/22 5:37:42  i拾贝  程序员俱乐部  我要评论(0)
  • 摘要:1.通过递归计算5的阶乘TestDiGui.java//通过递归计算5的阶乘publicclassTestDiGui{publicstaticvoidmain(String[]args){System.out.println(m(5));//结果为120}publicstaticintm(intn){if(n==1)return1;elsereturnn*m(n-1);}}方法调用图:2.通过递归方法计算fibnacci数列TestFib
  • 标签:Java 递归

1.通过递归计算5的阶乘

TestDiGui.java

class="java">//通过递归计算5的阶乘
public class TestDiGui {
	public static void main(String[] args) {
		System.out.println(m(5));	//结果为120
	}
	public static int m(int n) {
		if(n == 1) return 1;
		else return n*m(n-1);		
	}
}

方法调用图:

?
?

2.通过递归方法计算fibnacci数列

TestFib.java

//通过递归计算斐波那契数列
//fibnacci f1=1,f2=1,f3=2,f4=3,f5=5,...,fn=f(n-1)+f(n-2);(n>2)
public class TestFib {
	public static void main(String[] args) {
		System.out.println(f(5));	//结果为5
	}	
	public static long f(int n) {
		if(n == 1 || n == 2){
			return 1;
		} else {
			return f(n-1)+f(n-2);	
		}	
		
	}
}

?递归方法调用图:



?

?3.通过非递归计算斐波那契数列

Fib.java

//通过非递归计算斐波那契数列
//fibnacci f1=1,f2=1,f3=2,f4=3,f5=5,...,fn=f(n-1)+f(n-2);(n>2)
public class Fib {
	public static void main(String[] args) {
		System.out.println(f(5));//结果5	
	}	
	
	public static long f(int n) {
		if(n == 1 || n ==2) {
			return 1;
		}
		long f1 = 1L;
		long f2 = 1L;
		long f = 0;
		
		for(int i=0; i < (n-2); i++) {
			f = f1 + f2;
			f1 = f2;
			f2 = f;
		}
		
		return f;
		
	}
}

?

  • 大小: 16.9 KB
  • 大小: 19.1 KB
  • 查看图片附件
发表评论
用户名: 匿名