首页 > 学院 > 开发设计 > 正文

分糖果

2019-11-06 07:18:37
字体:
来源:转载
供稿:网友

问题描述   有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); }}
上一篇:命名空间

下一篇:畅通工程 并查集

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表