[HackerRank]Java計算體積(Java Calculating Volume)

題目描述

輸入一個整數ch,這個ch整數值所代表的意義如下:

ch=1表示要計算邊長為a的正方體體積。
ch2表示要計算長、寬、高為l、b、h的長方體體積。
ch3表示要計算半徑為r的半球體體積。
ch4表示要計算半徑為r、高為h的圓柱體體積。

撰寫一個Calculate類別,分別按照上面的要求實作出不同的方法,要將計算結果省略至小數點第3位來輸出。

若輸入的長度小於0,要輸出「java.lang.NumberFormatException: All the values must be positive」。

原題網址

https://www.hackerrank.com/challenges/calculating-volume

輸入格式

第一行輸入一個整數T,表示測試資料的數量,接下來的T組資料,一開始要先輸入ch值,範圍在1到4之間(包含1和4),接著依照ch的不同而有以下幾種不一樣的輸入:

ch=1,接下來的一行要輸入正方體的長度a。
ch=2,接下來的三行要分別輸入長方體的長度l、寬度b、高度h。
ch=3,接下來的一行要輸入半球體的半徑r。
ch=4,接下來的兩行要分別輸入圓柱體的半徑r和高度h。

a、l、b、h、r的值皆在-100到100之間(包含-100和100)。

輸出格式

計算每組測試資料,輸出四捨五入至小數點後第三位的計算結果。

範例輸入1

2
1
4
4
67.89
-98.54

範例輸出1

64.000
java.lang.NumberFormatException: All the values must be positive

額外解釋1

在這兩組測試資料中,第一組測試資料的ch為1,所以是要計算正方體的體積。接下來輸入的a為4,正方體體積算法為:

a * a * a = 4 * 4 * 4 = 64.000

第一組測試資料的ch為4,所以是要計算圓柱體的體積,但輸入的圓柱體高度是負數,因此輸出「java.lang.NumberFormatException: All the values must be positive」。

範例輸入2

1
3
1.02

範例輸出2

2.223

解題概念

實作Calculating類別來處理標準輸入串流和實際用來計算體積的物件。實作Volume類別來計算體積。實作Printer類別來處理小數點輸出和輸入負數的輸出。

參考答案

關於作者

Magic Len

各位好,我是Magic Len,是這網站的管理員。我是台灣台中大肚山上人,畢業於台中高工資訊科和台灣科技大學資訊工程系,曾在桃機航警局服役。我熱愛自然也熱愛科學,喜歡和別人分享自己的知識與經驗。如果你有興趣認識我,可以加我的Facebook,並且請註明是從MagicLen來的。

相關文章