历届试题 PREV-32 分糖果
2017-09-23 13:54
316 查看
问题描述
有n个小朋友围坐成一圈。老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏:
每个小朋友都把自己的糖果分一半给左手边的孩子。
一轮分糖后,拥有奇数颗糖的孩子由老师补给1个糖果,从而变成偶数。
反复进行这个游戏,直到所有小朋友的糖果数都相同为止。
你的任务是预测在已知的初始糖果情形下,老师一共需要补发多少个糖果。
输入格式
程序首先读入一个整数N(2<N<100),表示小朋友的人数。
接着是一行用空格分开的N个偶数(每个偶数不大于1000,不小于2)
输出格式
要求程序输出一个整数,表示老师需要补发的糖果数。
样例输入
3
2 2 4
样例输出
4
有n个小朋友围坐成一圈。老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏:
每个小朋友都把自己的糖果分一半给左手边的孩子。
一轮分糖后,拥有奇数颗糖的孩子由老师补给1个糖果,从而变成偶数。
反复进行这个游戏,直到所有小朋友的糖果数都相同为止。
你的任务是预测在已知的初始糖果情形下,老师一共需要补发多少个糖果。
输入格式
程序首先读入一个整数N(2<N<100),表示小朋友的人数。
接着是一行用空格分开的N个偶数(每个偶数不大于1000,不小于2)
输出格式
要求程序输出一个整数,表示老师需要补发的糖果数。
样例输入
3
2 2 4
样例输出
4
import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner input = new Scanner(System.in); int n = input.nextInt(); int a = 0,b = 0,count = 0,x = 0; int s[] = new int ; for(a=0; a<n; a++){ s[a] = input.nextInt(); } input.close(); while(true){ for(a=0; a<n; a++){ s[a] = s[a]/2; } b = s[0]; for (a=0; a<n-1; a++){ s[a] = s[a]+s[a+1]; } s[n-1] = s[n-1]+b; for (a=0,x=0; a<n; a++){ if (s[a]%2!=0){ s[a] = s[a]+1; count++; }else{ x++; } } for (a=0; a<n-1; a++){ if (s[a]!=s[a+1]){ x=0; } } if (x==n){ System.out.println(count); break; } } } }
相关文章推荐
- 蓝桥杯 PREV-32 历届试题 分糖果 (java)
- 蓝桥杯PREV-32——历届试题 分糖果
- 历届试题 PREV-5 错误票据
- 历届试题 PREV-21 回文数字
- 蓝桥杯-历届试题 分糖果
- 历届试题 PREV-34 矩阵翻硬币
- 蓝桥杯-历届试题-PREV-13-网络寻路
- 蓝桥杯--历届试题 分糖果
- 历届试题 PREV-27 蚂蚁感冒
- 蓝桥杯--历届试题 分糖果(模拟水题)
- 历届试题 分糖果
- 蓝桥网-历届试题 分糖果 简单模拟
- 蓝桥杯 PREV-3 历届试题 带分数 Java版
- 历届试题 分糖果 模拟
- 蓝桥杯 PREV-21 历届试题 回文数字
- 蓝桥杯 历届试题 分糖果 (模拟)
- 历届试题 PREV-33 兰顿蚂蚁
- 历届试题 分糖果
- 蓝桥杯 PREV_21 历届试题 回文数字(java)
- 蓝桥杯 PREV-1 历届试题 核桃的数量