iT邦幫忙

2021 iThome 鐵人賽

DAY 27
0
自我挑戰組

CPE題目練習系列 第 27

[Day27]Vito'sfamily

上一篇介紹了Jolly Jumpers,這題講了判斷是不是Jolly Jumpers,也就是輸入一個數字N,並且左邊的數字減右邊的數字的絕對值範圍會在1~N-1內,並且都不會重複,換句話說就是1~N-1範圍內的每個數字都會出現在答案理,這樣就是Jolly Jumpers。

今天講解的題目是Vito'sfamily
先附上程式碼:

import java.util.;
import static java.lang.System.
;
public class main{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
while(sc.hasNextInt()){
int C=sc.nextInt();
for(int x=0;x<C;x++){
int A=sc.nextInt();
int arr[]=new int[A];
for(int i=0;i<A;i++){
arr[i]=sc.nextInt();
}
Arrays.sort(arr);
int D=0;
for(int i=0;i<A;i++){
D+=Math.abs(arr[i]-arr[A/2]);
}
System.out.println(D);
}
}
}
};

這題簡單來說就是要找出中位數,並輸出中位數減去其他數的總和,因為中位數跟其他數相減的總合會最小,一開始先輸入一個C當作有幾題,在輸入一個A當作一題裡面有幾個數字,接下來就是使用迴圈跟陣列把輸入的數字寫進去,然後先排序,這樣找出中位數會比較方便,之後只需要把每個數都減掉arrA/2再加總就可以了,這題只要把總共的幾個的數/2就可以拿到中位數的位子了。
今天的講解就到這裡。
明天也是新的題目,會介紹Hashmat the brave warrior ,繼續加油!


上一篇
[Day26]Jolly Jumpers
下一篇
[Day28]Hashmat the brave warrior
系列文
CPE題目練習30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言