二进制思想及其应用

本文通过两个经典的面试题,展示了二进制思想在解决实际问题中的巧妙运用。第一题涉及如何用两次切割将金条分给工人,确保每天能支付相应工钱。第二题探讨如何在10个箱子里放苹果,以便任意数量的苹果都能整箱给出。解答揭示了二进制在表示和组合数字方面的独特优势。
摘要由CSDN通过智能技术生成

两个经典面试题(二进制思想)
1.你让工人为你工作7天,回报是一根金条,这个金条平分成相连的7段,每工作1天的回报就是1段。每天结束的时候,工人都有可能会向你要金条。如果只允许你两次把金条弄断,你如何给你的工人付费?

2.有1000个苹果,将它们放在10个箱子里,怎么放才能让我向你要苹果的时候,你都能整箱整箱的给我,你的给法是否唯一?

解答:
1. 工人可能在第1,2,3,4,5,6,7天结束时向你要金条,你给他的金条之和应分别为1,2,3,4,5,6,7.这样,如果把金条弄断两次,使得三段长分别为1,2,4,那每天结束时,如果这天工人找你要金条,你都可以满足这天工人可以得到的金条数是他工作的天数。因为1-7之间的数可以用3位二进制来表示,即1,2,4,而这恰好是金条的三段长。
比如:
工人第一天要金条:直接给段长为1
工人第一天要金条,第二天也要金条:给段长为2,同时收回段长为1
工人第一,二天未要金条,第三天要金条:给段长为1,2
工人第1天要金条,第2,3,4,5未要金条,第6天要金条:给段长2,4,收回段长为1

2. 要苹果的数量肯定是1-1000之间,也就是说任意给一个数1-1000之间,我必须知道它等于哪几个数之和。也是利用二进制思想,2^9 = 512, 2^10 = 1024,所以放1000个苹果需要10个箱子,每个箱子苹果数依次为
第0个箱子 2^0 = 1
第1个箱子 2^1 = 2
第2个箱子 2^2 = 4
第3个箱子 8
第4个箱子 16
第5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值