美文网首页
算法1 五只猴子挑桃子

算法1 五只猴子挑桃子

作者: holmes000 | 来源:发表于2017-08-27 21:40 被阅读0次

题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?

思路:第一只猴子分出的一份桃中有x个, 起始5x+1,剩余4x

第二只猴子分出的一份桃有y个 (4x-1)/5=y ,起始4x=5y+1,剩余4y

。。。然而读到最后可知最后一个猴子一份桃中若有n个,起始5n+1,剩余4n个

前一个猴子的剩余个数是后一个猴子的起始个数

n的条件是1),正整数(n>=1) 2),(5n+1)/4为正整数

最后一个猴子起始最少(5n+1)个

第四个猴子起始5*((5n+1)/4)+1

第三个猴子起始5(5((5n+1)/4)+1)+1

第二个猴子起始5(5(5*((5n+1)/4)+1)+1)+1

第一个猴子。。。以此类推

依题可知

从最后一个猴子入手,它的起始桃子个数就是上一个猴子剩余桃子个数,此个数能整除4.我们假设最后一个猴子分桃子一份个数为n个,那么他的桃子起始数量就为5n+1,即它上一个猴子的桃子剩余数量。从而找到第一个猴子的起始数量即为海滩桃子的数量。
代码

    int num = 5;//num代表猴子数量
    int n = 3;//n代表最后一只猴子分出一份中的个数
    int startNum = 0;//每个猴子的起始数量
    for (int i = 0; i < num; i++) {//i=0时为第num个猴子
        if (i == 0) {
           startNum = 5 * n + 1;
        } else {
            if (startNum % 4 != 0){
                n++;
                i = -1;//回到第num只猴子
            }else {
                startNum = 5 * (startNum / 4) + 1;
            }
        }
    }
    System.out.println("海滩上原来最少有多少个桃子(即第一个猴子的起始数量)="+startNum+" 相应第"+num+"个猴子的每份桃子的数量为="+ n);

相关文章

  • 算法1 五只猴子挑桃子

    题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走...

  • 挑桃子

    上午,我在家看书。 午休起来,居然下雨了。 某宝昨天下单的买菜小推车到货了,老公两分钟就安装好了,两个PU红轮看起...

  • 【工作】《分物游戏》(3)

    活动1:分桃子 师:“有2只小猴子一共收获了4个桃子,想请大家帮它们分一分。” (板书右边贴2个猴子卡片和4个桃子...

  • 猴子分桃 (经典面试题)

    一只猴子摘桃子,摘累了,决定休息一下再分桃子。过了一会,来了一只猴子,把所有桃子均分成了5分,结果多了1个,就把多...

  • 《猴子吃桃子》读后感。

    《猴子吃桃子》主要讲了一群猴子的猴王爬到桃树上吃桃子,那时桃子还没有成熟,所以猴王觉得桃子很苦,不能吃,所...

  • 桃子和枣子

    胖胖的猴子不喜欢桃子 蜜桃吃了一个 丢了四个 胖胖的猴子想要天上那个圆盘子 瘦瘦的猴子没有桃子 瘦瘦的猴子爱枣子 ...

  • 善良的小猴子

    一天,小猴子去果园里摘桃子,他看见树桃子又大又红,就想去摘桃子。他摘了一蓝子桃子,小猴子拿着篮子走到回家的...

  • 猴子分桃子.java

    问题描述:猴子分桃:海 滩上有一堆桃子,五只猴子来分。 第一只猴子把这堆桃子凭据分为五份,多了一个, 这只猴子把多...

  • 猴子与桃子

    毛乎乎的桃子 猴本猴望了一眼 “我不喜欢吃” “哪有不爱吃桃的猴儿” “悟空因偷吃蟠桃而闯祸” 一时语塞 .......

  • 猴子摘桃子

    一天有一只小猴子,它下山去摘桃子,它摘完桃子回家的时候,它看到了玉米,它扔下桃子去搬玉米,它拿了玉米往...

网友评论

      本文标题:算法1 五只猴子挑桃子

      本文链接:https://www.haomeiwen.com/subject/uhvidxtx.html