Java 學習記錄 25 — 代碼挑戰 6

張小雄
5 min readJan 21, 2021

--

題目:Input Calculator

創立名為inputThenPrintSumAndAverage的method,不需回傳。

用戶輸入不同數字,當輸入非數字後打印前面數字的總和與平均

“SUM = XX AVG = YY”

XX 等於 數字總和 使用 int

YY 等於 數字平均 avg要四捨五入至整數 使用 Math.round((double) avg)

題目: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;
}

--

--

張小雄
張小雄

Written by 張小雄

記錄成為軟體工程師的過程

No responses yet