倒水问题

皮熊熊 2010-05-13 05:57:33
设大、中、小3个杯子的容量分别为a,b,c,最初只有大杯子装满水,其他两个杯子为空。最少需要多少步才能让某一个杯子中的水有x升呢?(0<c<b<a<1000)。提示:可能完不成目标,如果可以输出步数,如果不可以,输出-1
求各位给个算法吧
...全文
355 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jakiejiajia 2010-05-14
  • 打赏
  • 举报
回复
递归回溯 参考汉诺塔
helloworldex 2010-05-14
  • 打赏
  • 举报
回复
首先对X进行分类讨论
0<c<b<a<1000
1: x <= c
2: (c < x) && (x <= b)
3: (b < x) && (x <= a)
4: x > a

在逐一求解
na2650945 2010-05-14
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 jakiejiajia 的回复:]
递归回溯 参考汉诺塔
[/Quote]
恩。
学习啦。
mfwlike 2010-05-13
  • 打赏
  • 举报
回复
每天回答有分拿!
qq84136264 2010-05-13
  • 打赏
  • 举报
回复
百度一下 广度优先算法~~ 整理整理思路~~~
sylcc_ 2010-05-13
  • 打赏
  • 举报
回复
X是要手动输入的吗?
感觉可以用递归
  • 打赏
  • 举报
回复
我仔细想了想,这个逻辑太复杂了,帮不了你
  • 打赏
  • 举报
回复
假设a杯中要有x升
判断a 和x,
如果a<x和完不成,return -1;
如果能完成,输出步骤 (这个就是考数学了,我数学不好)
其他的都类似
tanchao90 2010-05-13
  • 打赏
  • 举报
回复
不太懂题目的要求?请楼上描述的清楚点,这个x到底有什么要求?
zhangyafei13 2010-05-13
  • 打赏
  • 举报
回复
来看看,学习学习

64,685

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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