-3
返回由正整數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));
}
這些是測試用例。任何對此的見解都會很棒。謝謝!
您可能正確地打印出序列,但是您沒有返回字符串。你需要一個字符串來存放冰雹,所以單元測試可以通過。 – gameweld
你正在返回''「'這就是爲什麼。你爲什麼不返回你的結果? – Ofisora
@Ofisora:每次都會返回1。 – Makoto