返回

分糖果问题

发布时间:2023-02-10 15:14:37 275
# ios

问题描述:

某个幼儿园里,有 5 位小朋友编号依次为 1,2,3,4,5他们按照自己的编号顺序围坐在一张圆桌旁。他们身上有若干糖果,现在他们玩一个分糖果游戏。从 1 号小朋友开始,将自己的糖果均分成 3 份(如果有多余的糖果,就自己立即吃掉),自己留一份,其余两份分给和他相邻的两个小朋友。接着 2,3,4,5 号小朋友也这样做。问一轮结束后,每个小朋友手上分别有多少糖果。

输入格式
一行,5 个用空格隔开的 int 范围内的正整数,分别是游戏开始时 1,2,3,4,5号小朋友手里糖果的数量。

输出格式
2 行,第 1 行是用一个空格隔开的 5个整数,表示一轮游戏结束后 1,2,3,4,5 号小朋友手里糖果的数量。第 2行是一个整数,表示一轮游戏过程中吃掉的糖果的总数。

输入样例: 输出样例:

8 9 10 11 12 11 7 9 11 6
6
问题分析:

首先我们把1,2,3,4,5号小朋友的糖果数量依次定义为a,b,c,d,e,从1号小朋友开始分糖果,也就是1号小朋友剩下a/3,其余的a/3分给了b和e,a%3属于是1号小朋友吃掉的糖果数量,当2号小朋友分糖果时,分的糖果总数量是b+a/3,因为a的糖果数量分给了他,他全部都要拿出来平均分成三份,自己剩下一份,其余的两份分给相邻的两位小朋友,2号小朋友分完后,2号小朋友剩下的糖果数量为(b+a/3)/3,其余的两份分给了相邻的两位,也就是a和c,b吃掉的糖果数量为(b+a/3)%3,所以b分完后,1号小朋友剩下的糖果数量为a/3+(b+a/3)/3,我们把(b+a/3)/3赋值给b,因为b分完后只剩下(b+a/3)/3,那么a的糖果数量就可以表示为a+b,c的糖果数量为c+b,然后轮到b分糖果,依次类推,直到e分完后结束,此时a的糖果数量还要加上e/3,因为a和e相邻,e分完后又自己的三分之一分给了a,这样一圈下来后,a的糖果数量为:a+b+e;b的糖果数量为:b+a+c;c的数量为:c+b+d;d的糖果数量为:d+c+e;e的数量为:e+d+a;我们前面已经把分成三份的一份赋值给了他自己,所以我们这里直接加上我们赋值过后的变量就可以了,比如这里的a,实际上等于a/3,这里的b,实际上是(b+a/3)/3,实际上是等于(c+(b+(a/3))/3),依次类推,下面直接上代码:

这里是C++的写法:

#include

using namespace std;

int main() {

int a, b, c, d, e;

cin >> a >> b >> c >> d >> e;

int sum =0;

sum += a % 3;

a = a / 3;//a

e = e + a;

sum += (b + a) % 3;

b = (b + a) / 3;

a = a + b;//b

sum += (c + b) % 3;

c = (c + b) / 3;

b = b + c;

sum += (d+c) % 3;

d = (d + c) / 3;

c = c + d;

sum += (e + d) % 3;

e = (e + d) / 3;

d = d + e;

a = a + e;//e

cout << a <<" " << b <<" " << c<<" " << d <<" " << e<<endl;

cout<<sum;

return 0;

}

下面是C语言的写法,就直接把输入输出换一下就行了,其余的思想都是不变的:

#include

int main() {

int a, b, c, d, e;

scanf("%d%d%d%d%d",&a,&b,&c,&d,&e);

int sum =0;

sum += a % 3;

a = a / 3;//a

e = e + a;

sum += (b + a) % 3;

b = (b + a) / 3;

a = a + b;//b

sum += (c + b) % 3;

c = (c + b) / 3;

b = b + c;

sum += (d+c) % 3;

d = (d + c) / 3;

c = c + d;

sum += (e + d) % 3;

e = (e + d) / 3;

d = d + e;

a = a + e;//e

printf("%d %d %d %d %d\n",a,b,c,d,e);

printf("%d",sum);

return 0;

}

运行结果如下:

分糖果问题_ios

运行结果与题目要求结果一致,属于正确解答,题目解法又很多种,这只是属于我的一种解法,欢迎纠正。

这是属于我的原创文章,之前在CSDN上发布过,后面我直接转载在此处。若有版权侵犯,请联系删除。

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线
下一篇
vue--各种疑难杂症 2023-02-10 14:37:59