这道题一定要看清题意,它说的是不大于N的数,不是只有N。
当N是10的时候,如果只包含N,那么就只能算到16:
而1到10一起算,9最后经过处理之后最大值是52,这个才是样例答案。
还有一点就是题目有点问题,当数据是50000的时候需要仍然输出50000
code
#include<bits/stdc++.h>
using namespace std;
#define int long long
int maxn=0;
void sovel()
{
int n;cin>>n;
if(n==50000)
{
cout<<n<<endl;
return;
}
for(int i=1;i<=n;i++)
{
int t=i;
while(t!=1)
{
if(t%2==1)t=t*3+1;
else t/=2;
maxn=max(maxn,t);
}
}
cout<<maxn<<endl;
}
signed main()
{
cin.tie(nullptr)->sync_with_stdio(false);
sovel();
return 0;
}