问题描述
有n个小朋友围坐成一圈。老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏:
每个小朋友都把自己的糖果分一半给左手边的孩子。
一轮分糖后,拥有奇数颗糖的孩子由老师补给1个糖果,从而变成偶数。
反复进行这个游戏,直到所有小朋友的糖果数都相同为止。
你的任务是预测在已知的初始糖果情形下,老师一共需要补发多少个糖果。
输入格式
程序首先读入一个整数N(2
package lanqiaobei;
import java.util.Scanner;
public class Main3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int[] tang = new int[N];
for(int i=0;i<N;i++){
tang[i] = sc.nextInt();
}
int sum=0;
boolean re = true;
while(re){
int s = 0;
for(int i=0;i<N-1;i++){
if(i==0){
s = tang[i]/2;
}
tang[i] = tang[i]/2+tang[i+1]/2;
}
tang[N-1] = tang[N-1]/2+s;
for(int i=0;i<N;i++){
if(tang[i]%2 !=0){
tang[i]+=1;
sum++;
}
}
int bj=0;
for(int i=0;i<N-1;i++){
if(tang[i] == tang[i+1]){
bj++;
}
if(bj==N-1){
re = false;
}
}
}
System.out.println(sum);
}
}