HDOJ1032
代码
#include <stdio.h>
int cycle_length(int n) //求循环长度的函数
{
int count = 0;
while(n!=1)
{
if(n%2)
{
n = 3*n+1;
}
else
{
n = n/2;
}
count++;
}
count++;
return count;
}
int main()
{
int i, j, k, a, b, max;
while(~scanf("%d%d", &i, &j))
{
max = 0;
if(i<j) //比较i和j的大小,a等于i,j中小的,b等于大的
{
a = i;
b = j;
}
else
{
a = j;
b = i;
}
for(k=a;k<=b;k++)
{
if(cycle_length(k)>max)
{
max = cycle_length(k);
}
}
printf("%d %d %d\n", i, j, max);
}
}
Conclusion
这道题里有一个隐藏的坑。题目要求i和j之间最大的循环长度,但并没有说i和j谁大。因此一定要先比较一下i和j的大小哦~