因此,我試圖在java上寫一個方法,將兩個代表兩個面積的浮點數作為輸入。 它回傳面積1除以面積2四舍五入后的商,作為一個整數。 以下是我的代碼:
public class PizzaClal {
public static void main (String[] args){
System.out.println(round_up(15.0, 6.0) )。
}
static int round_up(double area1, double area2) {
double diff1 = area1 / area2。
double diff2 = area2 / area1。
if (area2 > area1 && diff2 > (int) diff2) {
return (int) (diff2) 1;
}if ( area1 > area2 && diff1 > (int) diff1) {
return (int) (diff1) 1;
} else{
return (int) (diff1)。
}
}
它應該回傳3,但卻回傳67。我是java的新手,我只知道Python,所以我不太明白我的錯誤在哪里,誰能幫幫我?
uj5u.com熱心網友回復:
如果你基本上只想回傳除法結果的上限,你可以大大簡化你的代碼。一個技巧是使用modulus運算子%,它回傳除法的余數,這在這里特別有用。如果a / b的余數是非零的,那么b就不能將a平均分割。只要將1加入到整數除法結果中,就會產生一個 "上限 "結果。你可以簡單地將(area1 / area2)投給一個整數,以獲得整數除法的結果。
static int round_up(double area1, double area2) {
int result = (int) (area1 / area2) 。
if ( area1 % area2 != 0) {
結果 。
}
return 結果。
}
uj5u.com熱心網友回復:
return Math.ceil(area1/area2)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/329408.html
標籤:
