LQ0120 猴子分香蕉枚举

Posted 海岛Blog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LQ0120 猴子分香蕉枚举相关的知识,希望对你有一定的参考价值。

题目来源:蓝桥杯2018初赛 C++ C组D题

题目描述
5只猴子是好朋友,在海边的椰子树上睡着了。这期间,有商船把一大堆香蕉忘记在沙滩上离去。
第1只猴子醒来,把香蕉均分成5堆,还剩下1个,就吃掉并把自己的一份藏起来继续睡觉。
第2只猴子醒来,重新把香蕉均分成5堆,还剩下2个,就吃掉并把自己的一份藏起来继续睡觉。
第3只猴子醒来,重新把香蕉均分成5堆,还剩下3个,就吃掉并把自己的一份藏起来继续睡觉。
第4只猴子醒来,重新把香蕉均分成5堆,还剩下4个,就吃掉并把自己的一份藏起来继续睡觉。
第5只猴子醒来,重新把香蕉均分成5堆,哈哈,正好不剩!
请计算一开始最少有多少个香蕉。

输入格式

输出格式
输出一个整数表示答案

问题分析
用枚举法来解决,由于第1只猴子把香蕉分成5堆还剩1个,那么香蕉至少有6根。
按步长5来枚举,速度比较快一些。

AC的C语言程序如下:

/* LQ0120 猴子分香蕉 */

#include <stdio.h>

int main()

    for (int i = 6, sum = 6; ;i += 5, sum = i) 
        sum -= sum / 5 + 1;
        if (sum % 5 == 2) 
            sum -= sum / 5 + 2;
            if (sum % 5 == 3) 
                sum -= sum / 5 + 3;
                if (sum % 5 == 4) 
                    sum -= sum / 5 + 4;
                    if (sum % 5 == 0 && sum != 0) 
                        printf("%d\\n", i);
                        return 0;
                    
                
            
        
    


    return 0;

以上是关于LQ0120 猴子分香蕉枚举的主要内容,如果未能解决你的问题,请参考以下文章

经典的猴子分香蕉问题

算法-猴子搬香蕉

逻辑题——飞机加油硬币平分猴子摘香蕉

算法-猴子运香蕉,看谁剩的多,N种解法

算法-猴子运香蕉,看谁剩的多,N种解法

猴子 JDFZ模拟赛