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中整數除法的結果是整數。
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
帕拉姆將四捨五入爲int,例如如果param爲5,下一次調用該函數將與參數2
在Java或其他大多數編程語言,當你通過劃分一個整數整數,結果將是一個整數。如果發生一個十進制數,例如說:
5/2=2.5
然後,小數點之前數將被視爲整數和2將被選擇。如果你想整數明確地轉換爲浮動或雙
,您可以使用以下任何轉換:
(float) 3/2;
(double) n/2;
上面明確地將其轉換爲十進制。
@LouisWasserman:我已經提到它需要數字的底層函數。因此,(-1/2)的層數將爲0. – 2012-07-31 11:43:50
傳統上,[不],(http://en.wikipedia.org/wiki/Floor_and_ceiling_functions#Examples)這不是「floor」的意思,即使[如使用在Java本身](http://docs.oracle.com/javase/6/docs/api/java/math/RoundingMode.html#FLOOR)。 – 2012-07-31 21:12:55
你爲什麼不試試看? – 2012-07-31 10:47:41
不是一個真正的問題 – developer 2012-07-31 10:49:39