UVA 100
本题从小到大依次算出每个数的所需步骤,然后保留最大的步骤数,这是暴力代码,打表正在学习中……http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=36
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #include<stdio.h> 2 #include<stdlib.h> 3 int main() 4 { 5 int i,b,a,temp,n,m,j; 6 while(scanf("%d%d",&a,&b)!=EOF) 7 { 8 printf("%d %d ",a,b); 9 n=1; 10 m=1; 11 if(a>b) 12 { 13 temp=a; 14 a=b; 15 b=temp;//如果没按顺序输入的话要先调整顺序 16 } 17 j=a; 18 while(j!=1) 19 { 20 if(j%2==1) 21 j=3*j+1; 22 else if(j%2==0) j=j/2; 23 n++;//先给定一个n 24 } 25 for(i=a+1;i<=b;i++) 26 { 27 j=i; 28 while(j!=1) 29 { 30 if(j%2==1) 31 j=3*j+1; 32 else if(j%2==0) j=j/2; 33 m++; 34 } 35 if(m>n) 36 n=m;//如果后一个比前一个大 那就交换 37 m=1; 38 } 39 printf("%d\n",n); 40 } 41 return 0; 42 }