Java 递归方法
1.说明
定义:
一个方法体内调用它自己
- 方法递归是一种隐式的循环,它会重复的执行某段代码,但这种重复执行无须循环控制
- 递归一定要向着已知的方向递归,否则这种递归就变成了无穷递归,类似于死循环
2.code 举例
public class RecursionTest {
public static void main(String[] args) {
RecursionTest x = new RecursionTest();
System.out.println(x.getSum(100));
System.out.println(x.getSum1(100));
System.out.println(x.getF(10));
System.out.println(x.Fibonacci(6));
}
// 计算1-n所有自然数的和
public int getSum(int n) {
if(n ==1) {
return 1;
}else {
return n + getSum(n -1);
}
}
// 计算1-n所有自然数的积
public int getSum1(int n) {
if(n ==1) {
return 1;
}else {
return n * getSum(n -1);
}
}
// 已知一个数列 f(0) = 1,f(1) = 4,f(n+2)=2*f(n+1) + f(n)
//其中n 是大于0的整数 求f(n)的值
public int getF(int n) {
if(n == 0) {
return 1;
}else if(n == 1){
return 4;
}else {
return 2 * getF(n-1) + getF(n-2);
}
}
// 计算斐波那锲数列的第N个值(一个数等于前两个数的和)
public int Fibonacci(int n) {
if (n == 1) {
return 1;
}else if(n == 2) {
return 1;
}else {
return Fibonacci(n-1) + Fibonacci(n-2);
}
}
}