解题思路:
这个题原理是很简单的,重点还是考察阅读理解能力和仔细程度,充分读懂题目解答就不是问题
注意事项:
题目中有一句:“一个正整数(输出的结果),表示不大于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 人评分
弟弟的作业 (C++代码)浏览:1342 |
C语言训练-最大数问题 (C语言代码)浏览:649 |
九宫重排 (C++代码)浏览:1410 |
C语言程序设计教程(第三版)课后习题6.4 (C语言代码)浏览:573 |
三角形 (C++代码)递推浏览:825 |
C语言程序设计教程(第三版)课后习题8.5 (C语言代码)浏览:600 |
C语言程序设计教程(第三版)课后习题9.10 (C语言代码)浏览:583 |
C语言程序设计教程(第三版)课后习题10.2 (C语言代码)浏览:755 |
C语言程序设计教程(第三版)课后习题10.5 (C语言代码)浏览:985 |
C语言程序设计教程(第三版)课后习题7.4 (C语言代码)浏览:548 |