蓝桥杯 冰雹数 知识点:模拟

54 阅读1分钟

14.冰雹数 - 蓝桥云课 (lanqiao.cn)

这道题一定要看清题意,它说的是不大于N的数,不是只有N。

当N是10的时候,如果只包含N,那么就只能算到16:

image.png

而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;
}