猴子第一天摘下若干桃子,当即吃了一半,觉得好不过瘾,于是又多吃了一个
第二天又吃了前天剩余桃子数量的一半,觉得好不过瘾,于是又多吃了一个
以后每天都是吃前天剩余桃子数量的一半,觉得好不过瘾,又多吃了一个
等到第10天的时候发现桃子只有1个了。
需求:请问猴子第一天摘了多少个桃子?
分析:
整体来看,每一天都是做同一个事件,典型的规律化问题,考虑递归三要素:
递归公式:f[n] = f[n-1]*2;
递归终结点:n == 1 ;
递归方向:sum增加
public class Demo { static int sum=1; public static void main(String [] args){ Scanner input = new Scanner(System.in); System.out.println("第一天桃子数为:"+f(input.nextInt())); } public static int f(int n){ if(n == 1) return sum; return f(n-1)*2; } }
输入:10
输出:512