某村有 1 位村长和 5 位村民。过年了,村里要庆祝一下。村长对村民说,村里有一笔奖金,让每位村民猜一猜奖金的数额是多少,谁猜的数额跟奖金额最接近,就算猜中,这笔奖金就归谁,村长自己不参与竞猜。如果有多个村民猜中,则由这些村民平分这笔奖金。请编写程序帮村长算一算有哪些村民猜中,每位村民分得多少奖金。
public class Main {
public static void main(String[] args) {
Main main = new Main();
int money = 5;
List<Integer> winners = main.getWin(Arrays.asList(1,2,3,4,5),money);
System.out.println("中奖人:"+winners);
System.out.println("中奖金额:"+money/winners.size());
}
public List<Integer> getWin(List<Integer> guesses, int num){
List<Integer> ans = new ArrayList<>();
int diff = Integer.MAX_VALUE;
for(int i = 0; i < 5; i++){
int curr = Math.abs(guesses.get(i)-num);
if(curr>diff) continue;
if(curr < diff){
ans.clear();
diff = curr;
}
ans.add(i+1);
}
return ans;
}
}