import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
boolean flag = true;
int count = 0;
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
ArrayList<Integer> array = new ArrayList<Integer>(); //存储初始糖果数与每次添加完后糖果数
ArrayList<Integer> array2 = new ArrayList<Integer>(); //存储每位小朋友要分出去的那一半的糖果数
for (int i=0;i<n;i++){
int num = sc.nextInt();
array.add(num);
array2.add(array.get(i)/2);
}
Integer max = Collections.max(array); //使用Collections获取最大与最小值,若最大等于最小则说明都相等
Integer min = Collections.min(array);
if (max == min){
flag = false;
System.out.println(count);
}
while (flag){
/**
* 索引第一位需获得的是索引最后一位小朋友的那一半糖果,将其放于循环外
* */
array.set(0,array.get(0)/2 + array2.get(n-1));
//判断添加完糖果后是否为偶数,否,则分发糖果数加一
if (array.get(0)%2 != 0){
array.set(0,array.get(0)+1);
count+=1;
}
for (int i=1,j=0;i<n;i++,j++){
array.set(i,array.get(i)/2 + array2.get(j));
if (array.get(i)%2 != 0){
array.set(i,array.get(i)+1);
count+=1;
}
array2.set(j,array.get(j)/2);
}
array2.set(n-1,array.get(n-1)/2);
max = Collections.max(array);
min = Collections.min(array);
if (max == min){
flag = false;
System.out.println(count);
}
}
}
}
Java 题目 1431: 蓝桥杯2014年第五届真题-分糖果
最新推荐文章于 2024-08-04 11:07:52 发布