zoukankan      html  css  js  c++  java
  • 蓝桥-分糖果(算法训练)

     1 /*
     2 蓝桥-分糖果
     3 测试通过
     4 时间:2015-9-22
     5 
     6 问题描述
     7   有n个小朋友围坐成一圈。老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏:
     8 
     9   每个小朋友都把自己的糖果分一半给左手边的孩子。
    10 
    11   一轮分糖后,拥有奇数颗糖的孩子由老师补给1个糖果,从而变成偶数。
    12 
    13   反复进行这个游戏,直到所有小朋友的糖果数都相同为止。
    14 
    15   你的任务是预测在已知的初始糖果情形下,老师一共需要补发多少个糖果。
    16 输入格式
    17   程序首先读入一个整数N(2<N<100),表示小朋友的人数。
    18   接着是一行用空格分开的N个偶数(每个偶数不大于1000,不小于2)
    19 输出格式
    20   要求程序输出一个整数,表示老师需要补发的糖果数。
    21 样例输入
    22 3
    23 2 2 4
    24 样例输出
    25 4
    26 */

    27 #include<stdio.h> 28 #define N 100 29 int Judge(int p[], int num) { 30 int i; 31 for(i = 0; i < num; i++) 32 if(p[0] != p[i]) 33 return 1; 34 return 0; 35 } 36 int main() { 37 int child[N] = {0}, t[N] = {0}; 38 int n, i; 39 scanf("%d", &n); 40 for(i = 0; i < n; i++) { 41 scanf("%d", &child[i]); 42 } 43 44 int sum = 0; 45 int count = 0; 46 while(Judge(child, n)) { 47 for(i = 0; i < n; i++) { 48 if(child[i] % 2 == 0) { 49 t[i] = child[i] = child[i] / 2; 50 } 51 else { 52 t[i] = child[i] = (child[i] + 1) / 2; 53 sum++; 54 } 55 } 56 for(i = 0; i < n - 1; i++) { 57 child[i + 1] += t[i]; 58 } 59 child[0] += t[n - 1]; 60 count++; 61 } 62 //printf("需要进行%d次分糖, 需要补充%d颗糖果 ", count, sum); 63 printf("%d", sum); 64 }
  • 相关阅读:
    Redis持久化(八)
    Redis通用命令(七)
    Redis数据结构(六)
    Redis数据结构(五)
    Redis数据结构(四)
    Redis数据结构(三)
    nodename nor servname provided, or not known
    edis.clients.jedis.exceptions.JedisDataException: MISCONF Redis is configured to save RDB snapshots,
    Redis与Java的链接Jedis(二)
    高并发Redis(Mac)环境配置(一)
  • 原文地址:https://www.cnblogs.com/lzjtdxfxl/p/4830658.html
Copyright © 2011-2022 走看看