
【题解】B4182 [中山市赛 2024] 海洋宝宝
洛谷B4182题解
洛谷观看效果更佳哦
Pre
本题思路较为简单,适合刚刚入门的新手提高水平,主要考察了循环的使用。
Solution
下面来到解题环节。首先需要注意的就是题目最下面的数据范围:
对于 100 % 100\% 100% 的数据,保证 1 ≤ n , m , k ≤ 1 0 9 。 1\leq n,m,k\leq 10^{9}。 1≤n,m,k≤109。
这意味着我们需要使用长整型来存储变量的值。判断数据范围向来是做题过程中不可缺少的一环,希望大家养成这个好习惯。
读完题目,我们不难发现,每过去一小时,每个海绵宝宝便会成为自己的
(
k
+
1
)
(k+1)
(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;//下次再见
}
事已至此,不如留下赞和关注,后会有期。
更多推荐
所有评论(0)