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 または他のほとんどのプログラミング言語では、整数を整数で割ると、結果は整数になります。10 進数が発生した場合は、たとえば次のように言います。
5/2=2.5
次に、小数点の前の数値が整数として扱われ、2 が選択されます。
整数を float または double に明示的に変換する場合は、次の変換のいずれかを使用できます。
(float) 3/2;
(double) n/2;
上記は明示的に10進数に変換します。
Javaでの整数除算の結果は整数なので不思議ではありません。
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
Param は int に丸められます。たとえば、param が 5 の場合、関数の次の呼び出しは param 2 になります。