历届试题 分糖果  
时间限制:1.0s   内存限制:256.0MB
问题描述
  有n个小朋友围坐成一圈。老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏:

  每个小朋友都把自己的糖果分一半给左手边的孩子。

  一轮分糖后,拥有奇数颗糖的孩子由老师补给1个糖果,从而变成偶数。

  反复进行这个游戏,直到所有小朋友的糖果数都相同为止。

  你的任务是预测在已知的初始糖果情形下,老师一共需要补发多少个糖果。

输入格式
  程序首先读入一个整数N(2<N<100),表示小朋友的人数。
  接着是一行用空格分开的N个偶数(每个偶数不大于1000,不小于2)
输出格式
  要求程序输出一个整数,表示老师需要补发的糖果数。
样例输入
3
2 2 4
样例输出
4
 
示例代码:
 import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader; public class Main {
private static int m;
private static int[] sweetsNum;
private static int addNum; //增加的糖果数
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
m = Integer.parseInt(br.readLine()); sweetsNum = new int[m];
String[] str = br.readLine().split(" ");
for(int i = 0; i < m; i++){
sweetsNum[i] = Integer.parseInt(str[i]);
} candy(m,sweetsNum); System.out.println(addNum);
} /**
* 分糖果
* @param m 学生个数
* @param sweetsNum 每个学生的糖果数
*/
private static void candy(int m, int[] sweetsNum) {
while(true){
if(equal(sweetsNum)){
return;
}else{
//每个小朋友都把自己的糖果分一半给左手边的孩子
int temp = sweetsNum[0];
for(int i = 0; i < sweetsNum.length-1; i++){
sweetsNum[i] = sweetsNum[i+1]/2 + sweetsNum[i]/2;
}
sweetsNum[sweetsNum.length-1] = temp/2 + sweetsNum[sweetsNum.length-1]/2; //老师给奇糖果数的孩子补糖果
for(int i = 0; i < sweetsNum.length; i++){
if(sweetsNum[i]%2 != 0){
addNum++; //记录补的糖果数的数目
sweetsNum[i]++;
}
}
}
}
} /**
* 判断所有学生手中的糖果数是否相等
* @param sweetsNum 每个学生的糖果数
* @return 相等返回true,否则返回false
*/
private static boolean equal(int[] sweetsNum) {
int n = 0;
for(int i = 1; i < sweetsNum.length; i++){
if(sweetsNum[i] == sweetsNum[0]){
n++;
}
}
if(n == sweetsNum.length-1){
return true;
}
return false;
}
}

蓝桥杯 历届试题 PREV-32 分糖果的更多相关文章

  1. 蓝桥杯历届试题 地宫取宝 dp or 记忆化搜索

    问题描述 X 国王有一个地宫宝库.是 n x m 个格子的矩阵.每个格子放一件宝贝.每个宝贝贴着价值标签. 地宫的入口在左上角,出口在右下角. 小明被带到地宫的入口,国王要求他只能向右或向下行走. 走 ...

  2. Java实现蓝桥杯历届试题分考场

    历届试题 分考场 时间限制:1.0s 内存限制:256.0MB 提交此题 问题描述 n个人参加某项特殊考试. 为了公平,要求任何两个认识的人不能分在同一个考场. 求是少需要分几个考场才能满足条件. 输 ...

  3. 蓝桥杯 历届试题 剪格子(dfs搜索)

    历届试题 剪格子 时间限制:1.0s   内存限制:256.0MB 问题描述 如下图所示,3 x 3 的格子中填写了一些整数. +--*--+--+ |* || +--****--+ ||* | ** ...

  4. 蓝桥杯 历届试题 PREV-34 矩阵翻硬币

    历届试题 矩阵翻硬币   时间限制:1.0s   内存限制:256.0MB 问题描述 小明先把硬币摆成了一个 n 行 m 列的矩阵. 随后,小明对每一个硬币分别进行一次 Q 操作. 对第x行第y列的硬 ...

  5. 转 蓝桥杯 历届试题 波动数列 [ dp ]

    传送门   历届试题 波动数列   时间限制:1.0s   内存限制:256.0MB     锦囊1   锦囊2   锦囊3   问题描述 观察这个数列: 1 3 0 2 -1 1 -2 ... 这个 ...

  6. Java实现蓝桥杯历届试题高僧斗法

    历届试题 高僧斗法 时间限制:1.0s 内存限制:256.0MB 提交此题 锦囊1 锦囊2 问题描述 古时丧葬活动中经常请高僧做法事.仪式结束后,有时会有"高僧斗法"的趣味节目,以 ...

  7. Java实现蓝桥杯历届试题买不到的数目

    历届试题 买不到的数目 时间限制:1.0s 内存限制:256.0MB 提交此题 锦囊1 锦囊2 问题描述 小明开了一家糖果店.他别出心裁:把水果糖包成4颗一包和7颗一包的两种.糖果不能拆包卖. 小朋友 ...

  8. Java实现 蓝桥杯 历届试题 小计算器

    历届试题 小计算器 时间限制:1.0s 内存限制:256.0MB 问题描述 模拟程序型计算器,依次输入指令,可能包含的指令有 1. 数字:'NUM X',X为一个只包含大写字母和数字的字符串,表示一个 ...

  9. 蓝桥杯  历届试题 幸运数  dfs

    历届试题 幸运数 时间限制:1.0s   内存限制:256.0MB 问题描述 幸运数是波兰数学家乌拉姆命名的.它采用与生成素数类似的"筛法"生成 . 首先从1开始写出自然数1,2, ...

随机推荐

  1. QGIS3.0.3+Qt5.9+VS2015_x64编译

    QGIS3.0.3+Qt5.9+VS2015_x64编译 参考:https://blog.csdn.net/u010670734/article/details/80241615 https://ww ...

  2. windows蓝屏错误小全

    作者:siyizhu 日期:2005-11-27 字体大小: 小 中 大  引用内容 0 0x00000000 作业完成.  1 0x00000001 不正确的函数.  2 0x00000002 系统 ...

  3. Windows系统 本地文件如何复制到远程服务器

    很多人在使用远程服务器的时候往往要将本地的文件传输到远程服务器内,方法有很多种,下面介绍下如何使用Windows自带的远程桌面连接程序将文件复制到远程服务器内. 1.首先,点击windows开始按钮, ...

  4. RabbitMQ解决分布式事务

    案例:经典案例,以目前流行点外卖的案例,用户下单后,调用订单服务,让后订单服务调用派单系统通知送外卖人员送单,这时候订单系统与派单系统采用MQ异步通讯. RabbitMQ解决分布式事务原理: 采用最终 ...

  5. mac下安装py第三方库到python3下

    python3 -m pip install **** 中间可能碰到超时问题 python3 pip --default-timeout=100 install -U **** 设置默认超时时间即可 ...

  6. EntityFramework 学习 一 Execute Native SQL Query

    SQL query for entity types: using (var ctx = new SchoolDBEntities()) { var studentList = ctx.Student ...

  7. Java -- 利用反射 操作任意数组,包括对象数组 和 基本数据类型的数组

    items为任意数组

  8. makefile下$(wildcard $^),$^,$@,$?,$<,$(@D),$(@F) 含义

    makefile下$(wildcard $^),$^,$@,$?,$<,$(@D),$(@F)代表的不同含义 $(filter-out $(PHONY) $(wildcard $^),$^) 常 ...

  9. QT 使用QUdpSocket QUdpServer UDP 建立客户端与服务器端

    1. 模拟天气监控,每隔两秒从Server发送天气信息到Client. 2. 示例代码 --------------------------- Server 端 ------------------- ...

  10. hdoj1012--u Calculate e

    Problem Description A simple mathematical formula for e is where n is allowed to go to infinity. Thi ...