解题思路:求解每一个数的循环长度,然后再求最大值。
注意事项:注意前面的大,后面的小时,要先交换两个数,但是也要注意先输出或保存交换前的两个数,因为是按输入顺序输出前面两个数的
参考代码:
#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语言程序设计教程(第三版)课后习题10.4 (C语言代码)浏览:365 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:569 |
C语言考试练习题_保留字母 (C语言代码)浏览:575 |
简单的a+b (C语言代码)浏览:627 |
大神老白 (C语言代码)浏览:611 |
C语言程序设计教程(第三版)课后习题8.4 (C语言代码)浏览:617 |
P1002 (C语言代码)浏览:980 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:867 |
【简单计算】 (C语言代码)浏览:622 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:632 |