c语言数组分糖,C语言分糖果

编程入门 行业动态 更新时间:2024-10-14 14:14:15

c<a href=https://www.elefans.com/category/jswz/34/1770116.html style=语言数组分糖,C语言分糖果"/>

c语言数组分糖,C语言分糖果

写在前面:这里是小王成长日志,一名在校大学生,想在学习之余将自己的学习笔记分享出来,记录自己的成长轨迹,帮助可能需要的人。欢迎关注与留言。

题目:

题目链接:.html

题目 1431: [蓝桥杯][2014年第五届真题]分糖果

时间限制: 1Sec 内存限制: 128MB 提交: 5184 解决: 2711

题目描述

问题描述

有n个小朋友围坐成一圈。老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏:

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

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

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

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

输入

程序首先读入一个整数N(2< N< 100),表示小朋友的人数。

接着是一行用空格分开的N个偶数(每个偶数不大于1000,不小于2)

输出

要求程序输出一个整数,表示老师需要补发的糖果数。

样例输入

3

2 2 4

样例输出

4

C语言解法

参考题解:

#include

int main()

{

int n, count = 0, flag = 1;

scanf("%d", &n);

int a[n + 1];

for (int i = 1; i < n + 1; i++)

scanf("%d", &a[i]);

//输入完成

//进入循环

while (flag)

{

flag = 0;

a[0] = a[1];

for (int i = 0; i < n; i++)

a[i] = a[i] / 2 + a[i + 1] / 2;

a[n] = a[n] / 2 + a[0] / 2;

for (int i = 0; i < n + 1; i++)

if (a[i] % 2 != 0)

{

a[i] += 1;count++;

}

for (int i = 1; i < n + 1; i++)

if (a[i] != a[0])

flag = 1;

}

printf("%d", count);

return 0;

}

都看到这里了,各位哥哥姐姐叔叔阿姨给小王点个赞 关个注 留个言吧,和小王一起成长吧,你们的关注是对我最大的支持。

有事没事进来看看吧 : 小王的博客目录索引

C语言专栏看这 : C语言学习专栏

如果以上内容有任何不准确或遗漏之处,或者你有更好的意见,就在下面留个言让我知道吧-我会尽我所能来回答。

更多推荐

c语言数组分糖,C语言分糖果

本文发布于:2024-02-06 17:24:16,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1750413.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:语言   组分   糖果

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!