一个简单的分金条算法题

97 阅读1分钟

问题:一个工人,来给老板工作七天,他的总报酬是一根金条,老板需要每天给他1/7的金条作为当天酬劳,但是只能切两刀,请问应该怎么切?

image.png

解决方案:

1、依据二进制的思想,把金条分为1:2:4的三份

image.png

2、如图所示

第一天,给工人分1,老板剩余6(4+2)

第二天,老板把手上的2给工人,工人再把手上的1找回给老板,最终工人手上为2,老板手上为5(4+1)

第三天,老板把手上的1分给工人,工人此时有3(2+1),老板有4

第四天,老板把手上的4给工人,工人再把手上剩余的3找回给老板,此时工人手上有4,老板手上有3(2+1)

第五天,老板把手上的1给工人,工人手上有5(4+1),老板剩余2

第六天,老板把剩余的2给工人,工人找回老板1,这时,工人手上有6(4+2),老板剩余1

第七天,老板把手上最后1小份金条给工人,工人手上有7(4+2+1),工期结束,金条也刚好分完。

image.png