-3
public void mystery1(int n) {
if (n <= 1) {
    System.out.print(n);
} else {
    mystery1(n / 2);
    System.out.print(", " + n);
}
}

是什么给出了这个奇数代码。因为当我们除以它时,它不会是一个整数。

4

4 回答 4

1

在 Java 或大多数其他编程语言中,当您将整数除以整数时,结果将是整数。如果出现十进制数,例如:

5/2=2.5

然后,小数点前的数字将被视为整数并选择 2。

如果您想将整数显式转换为浮点数或双精度数,可以使用以下任何一种转换:

(float) 3/2;

(double) n/2;

以上明确将其转换为小数。

于 2012-07-31T10:55:14.347 回答
1

这并不神秘,因为Java中整数除法的结果是整数。

于 2012-07-31T10:47:57.010 回答
0

参数将四舍五入为 int,例如如果参数为 5,则下一次调用该函数将使用参数 2

于 2012-07-31T10:53:35.677 回答
0

n / 2,这是一个整数除法,其中小数部分将被忽略。

System.out.println(3/2); // prints 1
System.out.println(3.0/2); // prints 1.5
System.out.println(3/2.0); // prints 1.5
System.out.println(3.0/2.0); // prints 1.5
于 2012-07-31T10:48:29.497 回答