题解:B4182 [中山市赛 2024] 海洋宝宝

· · 题解

题目传送门 & AC记录

Pre

本题思路较为简单,适合刚刚入门的新手提高水平,主要考察了循环的使用。

Solution

下面来到解题环节。首先需要注意的就是题目最下面的数据范围:

对于 100\% 的数据,保证 1\leq n,m,k\leq 10^{9}。

这意味着我们需要使用长整型来存储变量的值。判断数据范围向来是做题过程中不可缺少的一环,希望大家养成这个好习惯。

读完题目,我们不难发现,每过去一小时,每个海绵宝宝便会成为自己的 (k+1) 倍,我们需要创建一个变量 ans 来存储当前的小时数。鉴于本题中的循环具有条件性,个人你推荐使用 while 循环来实现。当然, for 循环同样可以实现,我将会在代码部分统一展示

Code

1 . while 循环

#include<bits/stdc++.h>
using namespace std;
long long n,k,m,ans;//注意数据范围 
int main()
{
    cin>>n>>k>>m;
    while(n<m)
    {
        n*=(k+1);
        ans++;
    }
    cout<<ans<<endl;//随手换行好习惯 
    return 0;//下次再见 
}

2 . for 循环

#include<bits/stdc++.h>
using namespace std;
long long n,k,m,ans;//注意数据范围 
int main()
{
    cin>>n>>k>>m;
    for(int i=1;n<m;i++)
    {
        n*=(k+1);
        ans=i;
    }
    cout<<ans<<endl;//随手换行好习惯 
    return 0;//下次再见 
}

事已至此,不如留下赞和关注,后会有期。