10个小孩分糖果

阅读: 评论:0

10个小孩分糖果

10个小孩分糖果

十个小孩围成一圈分糖果,老师分给第一个小孩10块,第二个小孩2块,第三个小孩8块,第四个小孩22块,第五个小孩16块,第六个小孩4块,第七个小孩10块,第八个小孩6块,第九个小孩14块,第十个小孩20块。然后所有的小孩同时将手中的糖分一半给右边的小孩;糖块数为奇数的人可向老师要一块。问经过这样几次后大家手中的糖的块数一样多?每人各有多少块糖?


*问题分析与算法设计

题目描述的分糖过程是一个机械的重复过程,编程算法完全可以按照描述的过程进行模拟。

#include <stdio.h>void print(int s[]);
int judge(int c[]);
int j = 0;int main()
{static int sweet[10] = {10, 2, 8, 22, 16, 4, 10, 6, 14, 20};int i, t[10], l;printf(" childn");printf(" round 1 2 3 4 5 6 7 8 9 10n");printf("------------------------------------------n");print(sweet); while (judge(sweet)) { for (i = 0; i < 10; i++) if(0 == sweet[i]%2){t[i] = sweet[i] = sweet[i]/2;}else{ t[i] = sweet[i] = (sweet[i] + 1)/2;}for (l = 0; l < 9; l++) sweet[l + 1] = sweet[l + 1] + t[l];sweet[0] += t[9];print(sweet); }return 0;
}int judge(int c[])
{int i;for (i = 0; i < 10; i++) if(c[0] != c[i]){return 1;}return 0;
}void print(int s[])
{int k;printf(" %2d ", j++);for (k = 0; k < 10; k++) printf("%4d", s[k]);printf("n");
}


本文发布于:2024-02-04 20:16:42,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170715643859262.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:糖果   小孩
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23