//每个数等于前两个数之和:1 1 2 3 5 8 13 21 34 55 ...
public class Fibonacci {
public static void main(String[] args) {
int n = 10;
System.out.println(new Fibonacci().Fib(n));
}
public int Fib(int n) {
if(n == 1)
return 1;
else if(n == 2)
return 1;
else
return Fib(n-1)+Fib(n-2);
}
}
//已知一个数列:f(20) = 1,f(21) = 4,f(n+2) = 2*f(n+1)+f(n),
//其中n是大于0的整数,求f(10)的值
public class Recursion_1 {
public static void main(String[] atgs) {
int n = 10;
System.out.println(new Recursion_1().sum(n));
}
public int sum(int n) {
if(n == 20) {
return 20;
}
else if(n == 21) {
return 21;
}
else
return sum(n+2)-2*sum(n+2);
}
}
public class Recursion_JieCheng {
public static void main(String[] atgs) {
System.out.println(new Recursion_JieCheng().fac(10));
}
public int fac(int n) {
if(n == 0 || n == 1)
return 1;
else
return fac(n-1)*n;
//每次递归的进入都是将n-1作为实参传递给形参,所以每次递归调用的方法所接收到的
//参数都比其外层接收到的参数小1;
//每次递归出去的都是本层递归方法所返回的结果,结果返回至给上一层调用它的位置
}
}