案例一 计算 5 的阶乘
需求:
计算 5 的阶乘
代码:
public static int recursion(int num) {
if (num == 1) {//递归出口
return 1;
} else {
return num * recursion(num - 1);//递归语句
}
}
运行结果:
120
案例二 斐波那契数列
需求:
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第二十个月的兔子对数为多少?
代码:
public static int rabbit(int month) {
if (month > 0 && month < 3) {
return 1;
} else if (month>=3){
return rabbit(month - 1) + rabbit(month - 2);
}else {
return -1;
}
}
运行结果:
6765
案例三 猴子吃桃
需求:
猴子第一天摘下若千个桃子,当即吃了一半,还不过瘾,又多吃了一个
第二天早上又将剩下的桃子吃掉一半,又多吃了一个
以后每天早上都吃了前一天剩的一半零一个
到第10天早上想再吃时,见只剩下一个桃子了
求第一天共摘了多少桃子?
代码:
public static int monkey(int day) {
if (day == 10) {
return 1;
} else {
return (monkey(day + 1) + 1) * 2;
}
}
运行结果:
1534