博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
算法笔记_170:历届试题 分糖果(Java)
阅读量:5167 次
发布时间:2019-06-13

本文共 1584 字,大约阅读时间需要 5 分钟。

目录

 


1 问题描述

问题描述
  有n个小朋友围坐成一圈。老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏:
  每个小朋友都把自己的糖果分一半给左手边的孩子。
  一轮分糖后,拥有奇数颗糖的孩子由老师补给1个糖果,从而变成偶数。
  反复进行这个游戏,直到所有小朋友的糖果数都相同为止。
  你的任务是预测在已知的初始糖果情形下,老师一共需要补发多少个糖果。
输入格式
  程序首先读入一个整数N(2<N<100),表示小朋友的人数。
  接着是一行用空格分开的N个偶数(每个偶数不大于1000,不小于2)
输出格式
  要求程序输出一个整数,表示老师需要补发的糖果数。
样例输入
3
2 2 4
样例输出
4

 

 


2 解决方案

 

具体代码如下:

 

import java.util.Scanner;public class Main {    public static int N;    public static int[] Child;    public static int count = 0;  //最终输出结果        public void getResult() {        while(true) {            boolean judge = true;            for(int i = 1;i < N;i++) {                if(Child[0] != Child[i]) {                    judge = false;                    break;                }            }            if(judge)                break;            int[] half = new int[N];            for(int i = 0;i < N;i++) {                if(i == N - 1)                    half[0] = Child[i] / 2;                else                    half[i + 1] = Child[i] / 2;            }            for(int i = 0;i < N;i++) {                Child[i] = Child[i] / 2 + half[i];                if(Child[i] % 2 == 1) {                    count++;                    Child[i]++;                }            }        }        System.out.println(count);    }        public static void main(String[] args) {        Main test = new Main();        Scanner in = new Scanner(System.in);        N = in.nextInt();        Child = new int[N];        for(int i = 0;i < N;i++)            Child[i] = in.nextInt();        test.getResult();    }}

 

转载于:https://www.cnblogs.com/liuzhen1995/p/6800563.html

你可能感兴趣的文章
创建代码仓库
查看>>
理解裸机部署过程ironic
查看>>
Django 组件-ModelForm
查看>>
zabbix 二 zabbix agent 客户端
查看>>
大数据分析中,有哪些常见的大数据分析模型?
查看>>
Generate SSH key
查看>>
URL中不应出现汉字
查看>>
SSH框架面试总结----1
查看>>
如何防止Arp攻击
查看>>
ClassList 标签的用法
查看>>
小细节:Java中split()中的特殊分隔符 小数点
查看>>
【编程思想】【设计模式】【行为模式Behavioral】中介者模式Mediator
查看>>
后端接口时间戳或者随机数的作用
查看>>
IOS越狱环境搭建
查看>>
tomcat docBase 和 path
查看>>
java默认语法、EL、JSTL表达式,JSTL和struts Tag标签的使用总结
查看>>
复杂度分析
查看>>
Vue笔记:使用 axios 发送请求
查看>>
富文本编辑器 - RichEditor
查看>>
LintCode刷题笔记-- Count1 binary
查看>>