zqz


私信TA

用户名:wxhnzll357159

访问量:12236

签 名:

心之所向,且随风而去

等  级
排  名 1191
经  验 3112
参赛次数 2
文章发表 6
年  龄 20
在职情况 学生
学  校 哔哩大学
专  业 计算机科学与技术

  自我简介:

TA的其他文章

解题思路:
这个题原理是很简单的,重点还是考察阅读理解能力和仔细程度,充分读懂题目解答就不是问题
注意事项:
题目中有一句:“一个正整数(输出的结果),表示不大于N的数字,经过冰雹数变换过程中,最高冲到了多少。“,说的是输出的这个数是从1到n中出现的冰雹的最大数,就是1的最大冰雹数,2的最大冰雹数,一直到n的最大冰雹数,这些最大中的最大,其次还有:”一个正整数N(N<1000000)“,所以范围设为long int 型,不然会输出超时。

参考代码:

#include
int main()
{
long int n,a,max=0;
scanf("%ld",&n);
for(;n>=1;n--)
{
a=n;
while(a>1)
{
if(max<a)//将max放在前面,因为偶数计算前最大,而奇数计算后最大,但不会为一,所以仍会走循环,如此max就不会错过任何一个比它大的数。
max=a;
if(a%2==0)
a=a/2;
else
a=a*3+1;
}
}
printf("%ld\n",max);
return 0;
}


 

0.0分

8 人评分

  评论区

  • «
  • »