解题思路:
这个题原理是很简单的,重点还是考察阅读理解能力和仔细程度,充分读懂题目解答就不是问题
注意事项:
题目中有一句:“一个正整数(输出的结果),表示不大于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 人评分
2004年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:667 |
C语言程序设计教程(第三版)课后习题6.10 (C语言代码)浏览:698 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:521 |
C二级辅导-计负均正 (C语言代码)浏览:647 |
剔除相关数 (C语言代码)浏览:1010 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:664 |
C语言考试练习题_排列 (C语言代码)浏览:719 |
C语言训练-阶乘和数* (C语言代码)-------- 呆板写法浏览:1346 |
【矩阵】 (C++代码)浏览:936 |
循环入门练习5 (C语言代码)浏览:830 |