| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 765 人关注过本帖
标题:[求助]分糖果
只看楼主 加入收藏
ghy2001
Rank: 1
等 级:新手上路
威 望:1
帖 子:87
专家分:0
注 册:2005-10-30
收藏
 问题点数:0 回复次数:9 
[求助]分糖果
十个小孩围成一圈分糖果,老师分给第一个小孩10块,第二个小孩2块,第三个小孩8块,第四个小孩22块,第五个小孩16块,第六个小孩4块,第七个小孩10块,第八个小孩6块,第九个小孩14块,第十个小孩20块。然后所有的小孩同时将手中的糖分一半给右边的小孩;糖块数为奇数的人可向老师要一块。问经过这样几次后大家手中的糖的块数一样多?每人各有多少块糖?(要求给出每一轮每人手上的糖果数量)。

给个思路,谢谢。
搜索更多相关主题的帖子: 糖果 小孩 块数 糖块 
2005-11-10 19:45
freeforever
Rank: 4
等 级:业余侠客
威 望:3
帖 子:368
专家分:201
注 册:2005-11-2
收藏
得分:0 
楼主,是第一个人分给第二个人吗?......

数据没错吧,我试了下程序停不下来呀!

你把第一轮下来的数据回个贴子吧.

[此贴子已经被作者于2005-11-10 21:09:29编辑过]


其实我也很无聊!
2005-11-10 21:08
ghy2001
Rank: 1
等 级:新手上路
威 望:1
帖 子:87
专家分:0
注 册:2005-10-30
收藏
得分:0 
int a[10]={10,2,8,22,16,4,10,6,14,20};
第一轮数据没关系的。估计你程序有问题。

[此贴子已经被作者于2005-11-10 22:07:29编辑过]


2005-11-10 22:06
freeforever
Rank: 4
等 级:业余侠客
威 望:3
帖 子:368
专家分:201
注 册:2005-11-2
收藏
得分:0 
#include "stdio.h"
main()
{
long end,baby[2][10]={{10,2,8,22,16,4,10,6,14,20},{10,2,8,22,16,4,10,6,14,20}};
int i,j,flag,count=0;char ch;
do
{
printf("\nTimes:%d\n",++count);
flag=1;
for(i=0;i<10;++i)
{ //分一次
if(i==0)baby[0][i]=baby[1][9]/2+baby[0][i]/2;
else baby[0][i]=baby[1][i-1]/2+baby[0][i]/2;
}
for(i=0;i<10;++i)
{ //奇数的得一块
if(baby[0][i]%2==1)baby[0][i]+=1;
printf("baby[%d]=%d\t",i,baby[0][i]);
}//printf("\n");
for(i=0;i<10;++i)
{ //保持"上下"维的一致
baby[1][i]=baby[0][i];
}
end=baby[0][i];//取一个人的糖数
for(i=1;i<10;++i)
if(end!=baby[0][i])
{ //与其它人糖数不一致退出
flag=0;
break;
}
ch=getchar();//停一次看输出
}while(!flag);
}

比较有意思的程序,呵呵,是作业也值得呀...

其实我也很无聊!
2005-11-11 12:03
ghy2001
Rank: 1
等 级:新手上路
威 望:1
帖 子:87
专家分:0
注 册:2005-10-30
收藏
得分:0 
我实施看你的程序。

2005-11-11 19:08
freeforever
Rank: 4
等 级:业余侠客
威 望:3
帖 子:368
专家分:201
注 册:2005-11-2
收藏
得分:0 
做对了有没有好外呀?

其实我也很无聊!
2005-11-11 19:12
ghy2001
Rank: 1
等 级:新手上路
威 望:1
帖 子:87
专家分:0
注 册:2005-10-30
收藏
得分:0 

#include <stdio.h>
int i,j=0,l,flag=0;//j=第几轮。
int a[10]={10,2,8,22,16,4,10,6,14,20};
void shuchu()
{
for(i=0;i<10;i++)
printf("%3d",a[i]);
printf("\n");
}
void main()
{
while (flag==0)// flag==0,退出循环。
{
printf("第 %2d 轮分糖:\n",++j);
printf("开始:");
shuchu();

l=a[9]/2;
for(i=9;i>0;i--)
a[i]=a[i]/2+a[i-1]/2;
a[0]=a[0]/2+l;
printf("分糖: ");
shuchu();//开始新一轮分糖。

for(i=0;i<10;i++)
{

if (a[i]%2==1)
a[i]+=1;
}
printf("补糖: ");
shuchu();
printf("\n");//分好补糖。

flag=1;
for(i=1;i<10;i++) // a[0]=任意a[i],继续分糖。
{
if (a[0]!=a[i])
flag=0;
}
}
}

你的没问题。呵呵


2005-11-11 19:14
ghy2001
Rank: 1
等 级:新手上路
威 望:1
帖 子:87
专家分:0
注 册:2005-10-30
收藏
得分:0 
做对了我当然感谢你。呵呵。

2005-11-11 19:23
zwk035
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2005-10-28
收藏
得分:0 
2005-11-22 20:29
w7259521
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2005-11-22
收藏
得分:0 
2005-11-23 21:39
快速回复:[求助]分糖果
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017791 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved