求助:分糖果问题

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

要求用数组来做。
...全文
392 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ding1188 2008-09-17
  • 打赏
  • 举报
回复

#include<stdio.h>
const int length=10;
bool IsOddNum(int num)
{
if(num % 2 == 1)
return true;
else
return false;
}

bool IsEqual(const int a[],int length)
{
bool temp;
for(int i=0;i<length-1;i++)
{
if(a[i]==a[i+1])
temp =true;
else
temp = false;
if(!temp)
break;
}
return temp;
}



void main()
{
int num[]={10,2,8,22,16,4,10,6,14,20};
int tempNum[10];
int index=0;
for(;;)
{
index++;
for(int i=0;i<length; i++)
{
if(IsOddNum(num[i]))
num[i] +=1;
num[i] /=2;
tempNum[i]=num[i];
}
for(int i=0;i<length;i++)
{
if(i==0)
num[i]+=tempNum[length-1];
else
num[i]+=tempNum[i-1];
}
if(IsEqual(num,length))
break;
}
for(int i=0;i<length;i++)
{
printf("%d ",num[i]);
}
printf("%d",index);
}
lbh2001 2008-09-17
  • 打赏
  • 举报
回复
使用最笨的办法

#include <stdio.h>

int main(void)
{
int student[10] = { 10, 2, 8, 22, 16, 4, 10, 6, 14, 20 };
int tem[10] = { 0 };
int time = 0;
int i, flag = 1;
while(1)
{
++time;
printf("No %02d : ", time);
for(i=0; i<10; ++i)
{
printf("%02d ", student[i]);
}
putchar('\n');

for(i=0; i<9; ++i)
{
if(student[i]==student[i+1])
flag = 0;
else
{
flag = 1;
break;
}
}

if(flag)
{
for(i=0; i<10; ++i)
{
tem[i] = student[i] / 2;
}
for(i=0; i<10; ++i)
{
student[i] = tem[i];
student[i] += tem[(i+9)%10];
}
for(i=0; i<10; ++i)
{
if(student[i]%2)
student[i] += 1;
}
}
else
break;
}

return 0;
}
wangdeqie 2008-09-17
  • 打赏
  • 举报
回复
变种的约瑟夫环
allen_zeng 2008-09-17
  • 打赏
  • 举报
回复
17次
最终每人分得18块糖
K行天下 2008-09-17
  • 打赏
  • 举报
回复
up
e_sharp 2008-09-17
  • 打赏
  • 举报
回复
UP
大写的池 2008-09-17
  • 打赏
  • 举报
回复
4L 正解 飘过
blueshame 2008-09-17
  • 打赏
  • 举报
回复
按规则写个代码就OK了,没什么难度
lukeamon 2008-09-17
  • 打赏
  • 举报
回复
留个脚印,回来看看
cooler36659266 2008-09-17
  • 打赏
  • 举报
回复
mark
帅得不敢出门 2008-09-17
  • 打赏
  • 举报
回复
纯写代码啊.现在的分难赚了.

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧