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

#include<stdio.h>
void main()
{
int b[10],a[10]={10,2,8,22,16,4,10,6,14,20},i;
while(a[0]!=a[1] || a[1]!=a[2] || a[2]!=a[3] || a[3]!=a[4] || a[4]!=a[5] || a[5]!=a[6] || a[6]!=a[7] || a[7]!=a[8] || a[8]!=a[9])
{
for(i=0;i<10;i++)
b[i]=a[i]/2;

for(i=0;i<10;i++)
{
if(i==0) a[i]=a[i]/2+b[9];
else a[i]=a[i]/2+b[i-1];
if((a[i]/2)!=0) a[i]=a[i]+1;
}
}
}
搜索更多相关主题的帖子: 小孩 糖果 块数 糖块 
2006-06-17 19:04
kampfar
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-6-6
收藏
得分:0 

if((a[i]/2)!=0) a[i]=a[i]+1;把这地方的a[i]/2改成a[i]%2应该是取余!

2006-06-17 20:22
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-06-17 20:29
toughbone
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-6-17
收藏
得分:0 
我是这样写的
#include<stdio.h>
void main()
{
int b[10],a[10]={10,2,8,22,16,4,10,6,14,20},i;
while(a[0]!=a[1] || a[1]!=a[2] || a[2]!=a[3] || a[3]!=a[4] || a[4]!=a[5] || a[5]!=a[6] || a[6]!=a[7] || a[7]!=a[8] || a[8]!=a[9])
{
b[0]=(a[0]+a[9]+2)>>1;
for(i=1;i<10;i++) b[i]=(a[i-1]+a[i]+2)>>1;
for(i=0;i<10;i++) a[i]=b[i];
}
已经在VC6.0下编译成功

[此贴子已经被作者于2006-6-17 22:33:28编辑过]

2006-06-17 22:17
yvhvfhp
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-4-15
收藏
得分:0 

谢谢

2006-06-19 16:07
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
/*以下给出分糖果的详细过程*/
#include<stdio.h>
#define N 10

int check(int *);
void display(int *);

main()
{
int hk[N]={10,2,8,22,16,4,10,6,14,20},hb[N];
int i,count=0;
display(hk);
while(check(hk))
{
for(i=0;i<N;i++)
{
if(hk[i]%2!=0)
hk[i]++;
hk[i]=hk[i]/2;
hb[i]=hk[i];
}
for(i=0;i<N;i++)
{
if(i==0)
hk[i]+=hb[N-1];
hk[i]+=hb[i-1];
}
display(hk);
}
}

int check (int *hk)
{
int i;
for(i=1;i<N;i++)
{
if(*(hk)!=*(hk+i))
return 1;
}
return 0;
}

void display(int *hk)
{
static int count;
int i;
printf("%d\t",count);
for(i=0;i<N;i++)
printf("%4d",*(hk+i));
printf("\n");
count++;
}

落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-06-19 16:22
快速回复:[求助]分糖果给10个小孩
数据加载中...
 
   



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

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