解题思路:
这个题原理是很简单的,重点还是考察阅读理解能力和仔细程度,充分读懂题目解答就不是问题
注意事项:
题目中有一句:“一个正整数(输出的结果),表示不大于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.0分

5 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论