早教吧 育儿知识 作业答案 考试题库 百科 知识分享

C语言问题:有12升水,怎样利用一个8升和一个5升的容器将水分为两个6升?有12升水,怎样利用一个8升和一个5升的容器将水分为两个6升?要求以如下格式打印出分水步骤.a12b8c51200***(“*”

题目详情
C语言问题:有12升水,怎样利用一个8升和一个5升的容器将水分为两个6升?
有12升水,怎样利用一个8升和一个5升的容器将水分为两个6升?要求以如下格式打印出分水步骤.
a12 b8 c5
12 0 0
* * * ( “*”表示当前状态下每个容器的盛水量)
......
0 6 6
▼优质解答
答案和解析
三个容器互相倒水,每次动作最多有六种可能的倒法
a->b、a->c、b->a、b->c、c->a、c->b
初始状态a=12,b=0,c=0,最终的目的是a=6,b=6,c=0(c最多是5,所以不可能是6,题目的最后一句0 6 6是误导).
如果a>0,且 b < 8,可执行 a->b,执行a->b的结果是
if (a 0,且c < 5,可执行 a->c,执行a->c的结果是
if (a