#include<cstdio> 

 int main() 

 { 

int a,b; 

int i,j,k,max; 

int t; 

int x,y; 

while(scanf("%d%d",&a,&b)!=EOF) 

{ 

max=0; 

if(a>b) 

{ 

x=b; 

y=a; 

} 

else 

{ 

x=a; 

y=b; 

} 

for(i=x;i<=y;i++) 

{ 

k=0; 

t=i; 

while(t) 

{ 

if(t==1) 

{ 
  

k++; 

break; 

} 
  

if(t!=1) 

k++; 

if(t%2==1) 

t=t*3+1; 

else 

t/=2; 

} 

if(k>max) 

max=k; 

} 

printf("%d %d %d\n",a,b,max); 
  

} 

return 0; 
}

此题本来不想解释,但错了一次,细想一下,有如下原因:

1,考虑题不全面;

2:做题太冲动,马虎大意,不能镇静的像题;