【每日例题】蓝桥杯 c++ 国王的遗产

发布时间 2023-11-07 16:21:51作者: 山远尽成云

国王的遗产

题目

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
国王的遗产
×国是个小国。国王K有6个儿子。在临终前,K国王立下遗嘱:国王的一批牛作为遗产要分给他的6个儿子。
其中,大儿子分1/4,二儿子1/5,三儿子1/6,....直到小儿子分1/9。
牛是活的,不能把一头牛切开分。
最后还剩下11头牛,分给管家。
请计算国王这批遗产中—共有多少头牛。

蓝桥杯 国王的遗产

思路分析

这道题乍一看可能有点难get到什么意思,但是应该能懂得这道题的本质是数学题.

  1. 这个题目首先要明白怎么求,既然题目问最大值,那么我们可以优先考虑while去求解,使用穷举法求得最大值
  2. 这个题目在强调1/4,1/5......1/9,我们要将其转化为4,5,6,7,8,9的倍数来看,所以由题目可得,该数一定为4,5,6,7,8,9的倍数
  • 从这点我们又需要想办法简化一下,我们需要明确,最大数既然为8的倍数,那他肯定满足为4的倍数,最大数既然为8和9的倍数,那他肯定满足为6的倍数

      3.当我们使用while去寻找的时候,我们在找到符合要求的数时2,一定要使用break跳出循环。

代码

#include<iostream>
using namespace std;
int main()
{
   int n=0;
   while(true)
   {
        n++;
        if(n%5==0 && n%7==0 && n%8==0 && n%9==0 && (n/4+n/5+n/6+n/7+n/8+n/9==n-11))
        {
            cout<<n<<endl;
            break;
        }
   }
   return 0;
}