返回一个字符串,该字符串由一个以正整数n开头并以1结尾的Hailstone序列组成 字符串应由一系列数字组成,每个数字后跟一个空格。当数字m (除了1)出现在序列中,它应该是nextHailstone(m)。 示例:nextHailstone(1)为“1”,nextHailstone(5)为“5 16 8 4 2 1”。
public static String hailstones (int n)
{
int calculation = 1;
System.out.print(n + " ");
while (n > 1)
{
if (n % 2 == 0)
{
n /= 2;
}
else
{
n = (n*3) + 1;
}
calculation++;
System.out.print(n + " ");
}
return " ";
}
当我在main方法中调用方法但代码的测试用例失败时,代码工作正常。
@Test
public void testHailstones ()
{
assertEquals("1 ", hailstones(1));
assertEquals("16 8 4 2 1 ", hailstones(16));
assertEquals("7 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 ", hailstones(7));
}
这些是测试用例。对此的任何见解都会很棒。谢谢!
答案 0 :(得分:4)
每次调用函数时都返回" "
。您需要构建一个内部字符串并将其作为结果返回。