| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1081 人关注过本帖
标题:如何分酒?
只看楼主 加入收藏
刘定邦
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:687
专家分:1570
注 册:2010-9-21
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
如何分酒?
一个人晚上出去打了10斤酒,回家的路上碰到了一个朋友,恰巧这个朋友也是去打酒的。不过,酒家已经没有多余的酒了,且此时天色已晚,别的酒家也都已经打烊了,朋友看起来十分着急。于是,这个人便决定将自己的酒分给他一半,可是朋友手中只有一个7斤和3斤的酒桶,两人又都没有带称,如何才能将酒平均分开呢?  慢慢能推出来.编程就不会.该如何写程序呢.谢谢
搜索更多相关主题的帖子: 朋友 
2011-01-17 23:43
马后炮
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:156
专家分:560
注 册:2010-12-17
收藏
得分:5 
编程用广度优先搜索,状态用三个数字a, b, c表示,a是那10斤酒里剩下的,b和c是那两个小酒桶里有的,由此能构造一个状态图,你遍历这个图找解而已

樱之雪,晓之车
2011-01-17 23:52
点线面
Rank: 8Rank: 8
来 自:NO.-1
等 级:蝙蝠侠
帖 子:525
专家分:980
注 册:2011-1-3
收藏
得分:5 
设10斤酒的容量,7斤酒的容量,3斤酒的容量为a,b,c
初始化时,10斤酒的液体的体积为m = 10
a = m;
b = 0;
c = 0;
第二轮
a = m-3;  a分给c
b = 0;
c = 3;
第三轮
a = m-3;
b = 3;    c分给b
c = 0;
第四轮
a = m-6;
b = 3;
c = 3;    a分给c
第五轮
a = m-6;
b = 6;    c分给b
c = 0;
第六轮
a = m-9;
b = 6;
c = 3;     a分给c
第七轮
a = m-9;
b = 7;    c分给b
c = 2;
第八轮
a = m-2;  b分给a  
b = 0;
c = 2;  
第九轮
a = m-2;
b = 2;   c分给b
c = 0;
第十轮
a = m-5;
b = 2;
c = 3;   a分给C
第十一轮
a = m-5;  
b = 5;   c分给a
c = 0;
next 答案明显

小代码,大智慧
2011-01-18 00:21
gongyaping
Rank: 4
来 自:广东肇庆怀集
等 级:业余侠客
帖 子:174
专家分:257
注 册:2010-8-1
收藏
得分:5 
學習了,呵呵。
2011-01-18 08:31
waterstar
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:984
专家分:2810
注 册:2010-2-12
收藏
得分:5 
根据上面的朋友提供的思路,写出的代码
程序代码:
/*一个人晚上出去打了10斤酒,回家的路上碰到了一个朋友,恰巧
这个朋友也是去打酒的。不过,酒家已经没有多余的酒了,且此时
天色已晚,别的酒家也都已经打烊了,朋友看起来十分着急。于是
,这个人便决定将自己的酒分给他一半,可是朋友手中只有一个7斤
和3斤的酒桶,两人又都没有带称,如何才能将酒平均分开呢?*/

/*--------------------------------------------
    by ************** waterstar
    time ************ 1.18
*/

#include<stdio.h>
void main()
{

    int m=10;
    int a,b,c;
    a=m;b=0;c=0;
    while(a!=5)            //没分出就继续
    {
        if(b==7)           //如果b满了,就倒回a中
        {
            a=a+b;
            b=c;
            c=0;
        }            
        c=3;         
        a=m-c-b;     
        if(c+b>7)         //c不能全部倒入b中
        {
            c=b+c-7; 
            b=7;
        }
        else
        {
            b=b+c;
            c=0;
        }            
    }
    printf("十斤酒剩下:%d斤\n",a);
    printf("七斤的酒桶里有:%d斤\n",b);
    printf("三斤的酒桶里有:%d斤\n",c);
}

不过总觉得是人脑代替电脑,呵呵

冰冻三尺,非一日之寒;士别三日,不足刮目相看!
2011-01-18 15:39
快速回复:如何分酒?
数据加载中...
 
   



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

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