一. 自顶向下(递归)
递归的一般解决方法:
- 找出基准条件: 即为递归结束条件。(如果没有结束条件,就会出现死循环。)
- 思考在基准条件下,会出现什么情况。 (弄清楚你要求的是什么)(确定参数)
- 思考基准条件前一步的情况,或函数执行情况。( 递是分解为子问题,归是产生答案)
- 配合递归公式,继续往前推 (从归里面找出递归公式)
- 最后完善代码
基准条件为:当第十天(day) 桃子数量(num)为 1 时;
day=10 return 1;
day=9 num=((num( day+1))+1)*2 num 是第i天桃子的数量 num(day+1)
递归公式 (num(day+1)+1)*2
public class bbb {
public static int num(int day) {
if(day==10) return 1 ;
return (num(day+1)+1)*2;
}
public static void main(String[] args) {
int a=num(1);
System.out.println(a);
}
}
二. 自下向上(循环)
public class bbb {
public static int num() {
int num=1; //记录每天拥有的桃子数
for(int i=10;i>1;i--) {
num=(num+1)*2;
System.out.println("第"+i+"天所剩桃子为"+num);
}
return num;
}
public static void main(String[] args) {
int a=num();
System.out.println(a);
}