注意
1.边界值
2.输入值大小问题,输入也要按照输入的顺序输出。
#include<stdio.h>
int find_maximum_cycle_length(int low,int high);
int find_cycle_length(int num);
int find_cycle_length(int num)
{
int result = 0;
while(num != 1)
{
result ++;
if( num % 2 == 1)
{
num = 3*num + 1;
}
else
{
num = num/2;
}
}
return result+1;
}
int find_maximum_cycle_length(int low,int high)
{
int num = low;
int temp = 0;
int result = 0;
while(num <= high)
{
temp = find_cycle_length(num);
if( temp > result)
{
result = temp;
}
num++;
}
return result;
}
int main()
{
int low = 0;
int high = 0;
int result = 0;
int i = 0;
int j = 0;
while(scanf("%d%d", &low, &high) != -1)
{
int i = low;
int j = high;
if(low > high)
{
int d = low;
low = high;
high = d;
}
result = find_maximum_cycle_length(low, high);
printf("%d %d %d\n",i,j,result);
}
return 0;
}