public void mystery1(int n) {
if (n <= 1) {
System.out.print(n);
} else {
mystery1(n / 2);
System.out.print(", " + n);
}
}
是什么给出了这个奇数代码。因为当我们除以它时,它不会是一个整数。
public void mystery1(int n) {
if (n <= 1) {
System.out.print(n);
} else {
mystery1(n / 2);
System.out.print(", " + n);
}
}
是什么给出了这个奇数代码。因为当我们除以它时,它不会是一个整数。
在 Java 或大多数其他编程语言中,当您将整数除以整数时,结果将是整数。如果出现十进制数,例如:
5/2=2.5
然后,小数点前的数字将被视为整数并选择 2。
如果您想将整数显式转换为浮点数或双精度数,可以使用以下任何一种转换:
(float) 3/2;
(double) n/2;
以上明确将其转换为小数。
这并不神秘,因为Java中整数除法的结果是整数。
参数将四舍五入为 int,例如如果参数为 5,则下一次调用该函数将使用参数 2
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