解题思路:求解每一个数的循环长度,然后再求最大值。
注意事项:注意前面的大,后面的小时,要先交换两个数,但是也要注意先输出或保存交换前的两个数,因为是按输入顺序输出前面两个数的
参考代码:
#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语言代码)浏览:611 |
C二级辅导-统计字符 (C语言代码)浏览:506 |
程序员的表白 (C语言代码)浏览:667 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:840 |
用筛法求之N内的素数。 (C语言代码)浏览:807 |
C语言程序设计教程(第三版)课后习题7.2 (C语言代码)浏览:542 |
【计算直线的交点数】 (C语言代码)浏览:1450 |
用筛法求之N内的素数。 (C++代码)浏览:693 |
求圆的面积 (C语言代码)浏览:1670 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:590 |