写点什么

算法题每日一练 --- 第 1 天:猴子分香蕉

作者:知心宝贝
  • 2022 年 7 月 18 日
  • 本文字数:656 字

    阅读完需:约 2 分钟

算法题每日一练---第1天:猴子分香蕉

一、问题描述

5 只猴子是好朋友,在海边的椰子树上睡着了。这期间,有商船把一大堆香蕉忘记在沙滩上离去。


第 1 只猴子醒来,把香蕉均分成 5 堆,还剩下 1 个,就吃掉并把自己的一份藏起来继续睡觉。


第 2 只猴子醒来,把香蕉均分成 5 堆,还剩下 2 个,就吃掉并把自己的一份藏起来继续睡觉。


第 3 只猴子醒来,把香蕉均分成 5 堆,还剩下 3 个,就吃掉并把自己的一份藏起来继续睡觉。


第 4 只猴子醒来,把香蕉均分成 5 堆,还剩下 4 个,就吃掉并把自己的一份藏起来继续睡觉。


第 5 猴子醒来,重新把香蕉均分成 5 堆,此时正好不剩!


请计算一开始最少有多少个香蕉?

二、题目要求

考察

1.简单模拟2.建议用时10~25min
复制代码

三、解题思路

把题目的描述分成 5 个条件:


  • 条件 1:n%5==1

  • 条件 2:条件 1 满足,n%5==2

  • 条件 3:条件 2 满足,n%5==3

  • 条件 4:条件 3 满足,n%5==4

  • 条件 5:条件 4 满足,n%5==0&&n!=0 条件 5 满足之后,所有条件全部满足,此时求出的 n 就是题目要求的值。

四、编码实现

#include<iostream>using namespace std;int main(){  int i,n;  for(i=6;;i++)//循环判断香蕉数目  {    n=i;    if(n%5==1)//条件1    {      n=(n-1)/5*4;      if(n%5==2)//条件2      {        n=(n-2)/5*4;        if(n%5==3)//条件3        {          n=(n-3)/5*4;          if(n%5==4)//条件4          {            n=(n-4)/5*4;            if(n%5==0&&n!=0)//条件5            {              cout<<i;//满足所有条件输出结果              return 0;            }          }        }      }    }  }  return 0;}
复制代码

五、输出结果

结果为:3141

发布于: 刚刚阅读数: 4
用户头像

知心宝贝

关注

公众号:穿越计算机的迷雾 2022.03.07 加入

生于尘埃 溺于人海 死于理想高台

评论

发布
暂无评论
算法题每日一练---第1天:猴子分香蕉_算法_知心宝贝_InfoQ写作社区