java算法买苹果
2014-02-24 20:23
134 查看
今天笔试有这么个题题目:有600个苹果,要求分装在10个盒子中。对于顾客要求的任意苹果数都可以通过此10个盒子进行组合得到。
当时不明白,回来后就在网上查了查有好多朋友给出了解决的代码,但是说明原理个人没看太懂,后来自己想了想,用自己的思维今天给朋友们说下,
首先,任何一个数都可以转化为一个二进制数,比如3 二进制位11, 所以是个箱子就可以看成是一个10位的二进制数,这样他可以表示的数就是1023
而二进制中的1都是2 的倍数。例如11,第一个1是2的一次,第二个1是2的零次。所以我们可以定义一个长度为10的数组来存放2的倍数。然后我们将顾客要求的任意数转化为二进制数,这个二进制数就可以用数组中2的倍数来表示了。
在举个例子:3 二进制11 数组存放了a[0]=1,a[1]=2 a[3]=2的三次方 a[4]=2的四次方。。。 而11是2的一次方+2的零次方。 所以就可以选数组中的a[0]和a[1]组成。
就是这样子。具体代码可以参考这位朋友的http://blog.csdn.net/xiaoya629/article/details/5502719
当时不明白,回来后就在网上查了查有好多朋友给出了解决的代码,但是说明原理个人没看太懂,后来自己想了想,用自己的思维今天给朋友们说下,
首先,任何一个数都可以转化为一个二进制数,比如3 二进制位11, 所以是个箱子就可以看成是一个10位的二进制数,这样他可以表示的数就是1023
而二进制中的1都是2 的倍数。例如11,第一个1是2的一次,第二个1是2的零次。所以我们可以定义一个长度为10的数组来存放2的倍数。然后我们将顾客要求的任意数转化为二进制数,这个二进制数就可以用数组中2的倍数来表示了。
在举个例子:3 二进制11 数组存放了a[0]=1,a[1]=2 a[3]=2的三次方 a[4]=2的四次方。。。 而11是2的一次方+2的零次方。 所以就可以选数组中的a[0]和a[1]组成。
就是这样子。具体代码可以参考这位朋友的http://blog.csdn.net/xiaoya629/article/details/5502719
相关文章推荐
- Java算法-苹果(01背包问题)
- 乔布斯的千亿遗产 苹果开启蒂姆库克新时代
- 苹果新的iOS 4.3。 0您的迎了上来年级有苹果iPad平板电脑,iPhone 4
- 苹果开发者证书
- 从iOS应用被拒看苹果的审核。
- 苹果从17年元旦开始强制要求HTTPS?!官方表示你们误会了
- 苹果获杀手级3D成像专利 可重建3D图像
- 苹果官方Apple Pay开发文档(中文版):开始使用Apple Pay
- Apache和Nginx配置支持苹果ATS方法
- Secondary Poor搭建苹果系统平台,开发苹果系列,进入苹果的必经之路。
- 苹果审核紧急通道
- 苹果恢复大师能正确使用时的各个软件版本
- 创意示范:苹果如何使用无线充电技术
- 申请付费苹果开发者账号 注意事项及流程
- NYOJ289:苹果(01背包入门)
- 苹果因游戏内购坑爹而被控告
- iOS设备的UDID是什么?苹果为什么拒绝获取iOS设备UDID的应用?如何替代UDID?
- 仿web中的form表单使用苹果原生网络请求进行文件上传
- 苹果发布OS X Mountain Lion的第三个开发者预览版