public class Recursion {
public static void main(String[] args) {
Recursion re = new Recursion();
//例题1 1到100内数的总和
int value = re.getSum(100);
System.out.println(value);
//例题2 1到100内数的乘积:n!
int value1 = re.getCheng(5);
System.out.println(value1);
//例题3 已知数列f(0) = 1,f(1) = 4,f(n+2) = 2*f(n+1) + f(n);求f(10);
int value2 = re.f(10);
System.out.println(value2);
//例题4 斐波那契数列 1 1 2 3 5 8 ... f(n) = f(n-1) + f(n-2);
int value3 = re.ff(5);
System.out.println(value3);
}
public int getSum(int n) {
if(n == 1) {
return 1;
}else {
return (n + getSum(n-1));
}
}
public int getCheng(int n) {
if(n == 1) {
return 1;
}else {
return n * getCheng(n-1);
}
}
public int f(int n) {
if(n == 0) {
return 1;
}else if(n == 1) {
return 4;
}else {//必须向着已知的走将n+2看成N即可
return 2 * f(n-1) + f(n-2);
}
}
public int ff(int n) {
if(n == 1 || n == 2) {
return 1;
}else {
return ff(n-1) + ff(n-2);
}
}
}
运行结果:



