我试图提交多次,但我得错了答案。 https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=36 我在网站上找到了一个与我的代码完全相同的解决方案,所以我提交了他的确认,它被接受了。 任何人都可以告诉我代码中可能有什么问题吗?
import java.util.Scanner;
class Main
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int count, max_count = 0;
while(input.hasNext())
{
//get input
int i = input.nextInt();
int j = input.nextInt();
int k = Math.min(i, j);
while(k <= Math.max(i, j))
{
count = findCycleLength(k);
if(count > max_count)
max_count = count;
k++;
}
System.out.printf("%d %d %d\n", i, j, max_count);
}
} //end main
private static int findCycleLength(int n)
{
int length = 1;
while(n != 1)
{
if(n%2 == 1)
n = 3*n + 1;
else
n /= 2;
length += 1;
}
return length;
}
}
答案 0 :(得分:0)
您必须为每个测试用例初始化max_count
。
尝试在max_count = 0;
之前添加while(k <= Math.max(i, j))
。