解题思路:求解每一个数的循环长度,然后再求最大值。
注意事项:注意前面的大,后面的小时,要先交换两个数,但是也要注意先输出或保存交换前的两个数,因为是按输入顺序输出前面两个数的
参考代码:
#include <stdio.h> int main() { int a,b,t,max; int i,n,m; while(scanf("%d%d",&a,&b)!=EOF) { printf("%d %d ",a,b); max=0; if(a>b) { t=a; a=b; b=t;} for(i=a;i<=b;i++) { m=i;n=0; while(1) { if(m==1) break; if(m%2==0) m=m/2; else m=3*m+1; n++; } if(i>2) n++; //如果i超过2,则步骤加1 if(max<n) max=n; } printf("%d\n",max); } return 0; }
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:423 |
分糖果 (C++代码)浏览:1453 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:878 |
C语言程序设计教程(第三版)课后习题6.4 (C语言代码)浏览:1047 |
2006年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:653 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:515 |
1157题解浏览:727 |
文科生的悲哀 (C语言代码)浏览:1404 |
C语言程序设计教程(第三版)课后习题10.5 (C语言代码)浏览:550 |
C语言程序设计教程(第三版)课后习题12.6 (C语言代码)浏览:663 |