| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1247 人关注过本帖
标题:向各位高手们请教一个问题
只看楼主 加入收藏
zhouxiangron
Rank: 2
等 级:论坛游民
帖 子:19
专家分:20
注 册:2010-7-9
结帖率:42.86%
收藏
已结贴  问题点数:20 回复次数:19 
向各位高手们请教一个问题
现有容量M、N升的两个罐子(依次记为A、B)没有任何刻度,要求从水池中量出K升水放到另一个容器里。其中M、N、K都是正整数。例如,对于M=7、N=3、K=1,可以这样操作,先用A罐量M升水,再利用B罐从A罐中量两次N升水,A罐中剩余的就是所要的一升水。编程输出操作过程,或者输出“不可能”。这道题怎么做,请教各位了。
搜索更多相关主题的帖子: 编程 正整数 
2010-08-29 08:57
vandychan
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
等 级:贵宾
威 望:18
帖 子:2296
专家分:6418
注 册:2010-8-20
收藏
得分:1 
以下是引用zhouxiangron在2010-8-29 08:57:36的发言:

现有容量M、N升的两个罐子(依次记为A、B)没有任何刻度,要求从水池中量出K升水放到另一个容器里。其中M、N、K都是正整数。例如,对于M=7、N=3、K=1,可以这样操作,先用A罐量M升水,再利用B罐从A罐中量两次N升水,A罐中剩余的就是所要的一升水。编程输出操作过程,或者输出“不可能”。这道题怎么做,请教各位了。
感觉是栈和队列的问题 。。。
vandychan嘴里叼着笔,细声沉吟道。

到底是“出来混迟早要还”还是“杀人放火金腰带”?
2010-08-29 11:14
encounter
Rank: 5Rank: 5
来 自:扬州
等 级:职业侠客
威 望:2
帖 子:150
专家分:359
注 册:2010-7-24
收藏
得分:1 
假设M>N
第一步
比较M,N,K
第一种情况
if(K>M>N)
for(i=0;i<=K/M;i++)
{if((K-i*M)%N==0)       说一下,有些可能有不止一种操作过程,那就不要用break,用一数组记录下所有满足条件的i即可
 { m=i;
  break;}

}


当然即为所求
else
impossible
第二种情况
if(M>K>N)
if((M-K)%N==0)
即为所求
else
impossible

if(M>N>K)
if((M-K)%N==0)和上面是一样的
至于什么
相等的,就更简单了,没做讨论,也可以并在上面,

应该已经很清楚了吧
自己要尝试着写哦







[ 本帖最后由 encounter 于 2010-8-29 13:11 编辑 ]

ping   nbtstat   netstat   tracert    nat   at    ftp   telnet..................
2010-08-29 12:55
vandychan
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
等 级:贵宾
威 望:18
帖 子:2296
专家分:6418
注 册:2010-8-20
收藏
得分:0 
以下是引用encounter在2010-8-29 12:55:38的发言:

假设M>N
第一步
比较M,N,K
第一种情况
if(K>M>N)
for(i=0;i<=K/M;i++)
{if((K-i*M)%N==0)       说一下,有些可能有不止一种操作过程,那就不要用break,用一数组记录下所有满足条件的i即可
 { m=i;
  break;}

}


当然即为所求
else
impossible
第二种情况
if(M>K>N)
if((M-K)%N==0)
即为所求
else
impossible

if(M>N>K)
if((M-K)%N==0)和上面是一样的
至于什么
相等的,就更简单了,没做讨论,也可以并在上面,

应该已经很清楚了吧
自己要尝试着写哦
天空一声巨响
高手已经登场

到底是“出来混迟早要还”还是“杀人放火金腰带”?
2010-08-29 13:19
encounter
Rank: 5Rank: 5
来 自:扬州
等 级:职业侠客
威 望:2
帖 子:150
专家分:359
注 册:2010-7-24
收藏
得分:0 
以下是引用vandychan在2010-8-29 13:19:37的发言:

天空一声巨响
高手已经登场
听君一言
胜读十年
承蒙缪赏
当之无愧



ping   nbtstat   netstat   tracert    nat   at    ftp   telnet..................
2010-08-29 14:00
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:1 
终于看懂2楼所说

—>〉Sun〈<—
2010-08-29 15:27
nc40
Rank: 1
等 级:新手上路
帖 子:2
专家分:2
注 册:2010-8-29
收藏
得分:1 
写的不错
2010-08-29 16:46
guoguo3138
Rank: 2
等 级:论坛游民
帖 子:15
专家分:35
注 册:2010-8-20
收藏
得分:1 
if(M>N&&M%N==K)
   printf("This action need %d.",(M-K)/N);  //判断M大于N时能否得到K
else if(M<=N&&N%M==K)
   printf("This action need %d.",(N-K)/M);  //判断M大于N时能否得到K

else
   printf("impossible");                    //如果以上两个均不成立显示不能
2010-08-29 17:06
御坂美琴
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:魔術の禁書目錄
等 级:小飞侠
威 望:9
帖 子:952
专家分:2929
注 册:2010-8-18
收藏
得分:1 
m和n的最大公约数能整除k就表示有解,否则一定无解,御坂认真地说

永远为正义而奋斗,锄强扶弱的Level 5 超能力者
とある魔術の禁書目錄インデックス__御み坂さか美み琴こと
http://bbs.bccn.net/space.php?action=threads&uid=483997
2010-08-29 17:07
vandychan
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
等 级:贵宾
威 望:18
帖 子:2296
专家分:6418
注 册:2010-8-20
收藏
得分:0 
以下是引用御坂美琴在2010-8-29 17:07:45的发言:

m和n的最大公约数能整除k就表示有解,否则一定无解,御坂认真地说
御姐所言甚是。。。。
vandychan嘴里叼着烟,貌似若有所思。。。。。。

到底是“出来混迟早要还”还是“杀人放火金腰带”?
2010-08-29 22:54
快速回复:向各位高手们请教一个问题
数据加载中...
 
   



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

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