一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第24天,点击查看活动详情。
一、问题描述
小明家里有 n 个鸡蛋。
每天早上,小明都要吃 1 个鸡蛋作为早餐。
小明家里还有一个母鸡。
母鸡会在第天的晚上下蛋,每次只下 1 个蛋。
请问,连续多少天以后,小明就没有早餐鸡蛋吃了?
题目链接:吃鸡蛋
二、题目要求
样例
输入:9 3
输出:13
解释:
第 1∼9 天的早晨,小明可以吃原本就有的鸡蛋。
第 10,11,12天的早晨,小明可以吃第 3,6,9 天晚上母鸡下的蛋。
第 13 天的早晨,小明可以吃第 12 天晚上母鸡下的蛋。
第 14 天的早晨,小明没有鸡蛋可以吃了。
所以,连续 13 天以后,小明就没有早餐鸡蛋可以吃了。
考察
1.模拟、数学
2.建议用时10~15min
三、问题分析
昨天晚上,发现Acwing周赛
里面的题目还蛮有意思的,比力扣周赛难度低了一些。今天带来周赛的第一题题解,A了两题就跑了,第三题没看。
吃鸡蛋这题本质上就是一个简单的模拟问题,模拟这一个循环过程。一开始有n个鸡蛋,每天-1
,如果是m的倍数,那么鸡蛋的数目等于n+1
。直到最后n为0,此时鸡蛋吃完了,输出此时的天数。
四、编码实现
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int main()
{
int i,n,m;
cin>>n>>m;//输入数据
for(i=1;;i++)
{
n--;//每天吃一个
if(i%m==0)//符合倍数条件,+1
n++;
if(n==0)//鸡蛋吃完,输出结果
{
cout<< i;
return 0;
}
}
return 0;
}