題目:Paint Job
一、創立名為getBucketCount的method,接收4個參數,回傳int。
第1個名為width的double參數,代表牆的寬度。
第2個名為height的double參數,代表牆的高度。
第3個名為areaPerBuckets的double參數,代表一桶油漆能覆蓋牆的面積。
第4個名為extraBuckets的int參數,代表Bob家裡擁有的油漆桶。
若 width、height、areaPerBuckets <= 0 ,return -1。
若extraBuckets < 0 ,return -1。
此用此method計算出 Bob前往此次工作,家裡不足所需要去買的油漆並return結果。
測試數據:
System.out.println(getBucketCount(-3.4, 2.1, 1.5, 2));
System.out.println(getBucketCount(3.4, 2.1, 1.5, 2));
System.out.println(getBucketCount(2.75, 3.25, 2.5, 1));
結果:
-1
3
3
二、創立同名為getBucketCount的method,接收3個double參數,回傳int。
參數名為width、height、areaPerBuckets。
若其中一個參數 <= 0 ,return -1。
計算出(width * height)/ areaPerBuckets的結果並返回。
測試數據:
System.out.println(getBucketCount(-3.4, 2.1, 1.5));
System.out.println(getBucketCount(3.4, 2.1, 1.5));
System.out.println(getBucketCount(7.25, 4.3, 2.35));
結果:
-1
5
14
三、創立同名getBucketCount的method,接收2個double參數,回傳int。
參數名為area、areaPerBuckets。
若其中一個參數 <= 0 ,return -1。
計算出 area / areaPerBuckets 的結果並返回。
提示:用 Math.ceil() 最後的結果。
測試數據:
System.out.println(getBucketCount(3.4, 1.5));
System.out.println(getBucketCount(6.26, 2.2));
System.out.println(getBucketCount(3.26, 0.75));
System.out.println(getBucketCount(2.25, 0.0));
結果:
3
3
5
-1
參考答案:
Input Calculator
public static void inputThenPrintSumAndAverage() { int sum = 0;
int count = 0; Scanner scanner = new Scanner(System.in); while (true) { boolean isInt = scanner.hasNextInt(); if (isInt) { int num = scanner.nextInt();
sum += num;
count++; } else {
break;
}
}
scanner.nextLine();
System.out.println("SUM = " + sum + " AVG = " + Math.round((double) sum/count));
scanner.close();
}
Paint Job
public static int getBucketCount(double width, double height, double areaPerBuckets, int extraBuckets) {
if ((width > 0) && (height > 0) && (areaPerBuckets > 0) && (extraBuckets >= 0)) { double num = getBucketCount(width, height, areaPerBuckets);
return (int) (Math.ceil(num) - extraBuckets); }
return -1; } public static int getBucketCount(double width, double height, double areaPerBuckets) {
if ((width > 0) && (height > 0) && (areaPerBuckets > 0)) {
double num = (width * height / areaPerBuckets);
return (int)Math.ceil(num);
} return -1; } public static int getBucketCount(double areaPerBuckets, double extraBuckets) {
if ((areaPerBuckets > 0) && (extraBuckets > 0)) { double num = areaPerBuckets / extraBuckets;
return (int) Math.ceil(num); }
return -1;
}