题目传送门AC记录

洛谷观看效果更佳哦

Pre

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

Solution

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

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

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

读完题目,我们不难发现,每过去一小时,每个海绵宝宝便会成为自己的 ( 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;//下次再见 
}

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

Logo

集算法之大成!助力oier实现梦想!

更多推荐