原题链接:蓝桥杯2016年第七届真题-冰雹数
解题思路:
这个题原理是很简单的,重点还是考察阅读理解能力和仔细程度,充分读懂题目解答就不是问题
注意事项:
题目中有一句:“一个正整数(输出的结果),表示不大于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分
5 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复