黑马程序员技术交流社区

标题: 练习二十五:猴子分桃问题 [打印本页]

作者: maxwell247    时间: 2015-9-27 20:16
标题: 练习二十五:猴子分桃问题

从网上找到一份编程练习题,我决定将里面的题目全都做一遍。
/*
        题目:海滩上有一堆桃子,五只猴子来分。
        第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。
        第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,
        第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?
*/

/*
        分析:和前面的猴子吃桃问题类似。倒推,递归。
*/

class HouZiFenTao {
        public static void main(String[] args) {
                int n=0; //0表示5个猴子都还没有拿桃子
                int sum=fenTao(0);
                System.out.println("原来至少有"+sum+"个桃子");
        }

        public static int fenTao(int n){
                if (n==5){
                        return 1; //最后至少还剩一个桃子
                }else{
                        return fenTao(n+1)*5+1; // 第N只猴子拿之前桃子数,应该为第N+1只猴子的桃子数*5+1个扔掉的桃子
                }
        }
}

/*
        输出结果:
        原来至少有3906个桃子
*/






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2