社区
数据结构与算法
帖子详情
请教一个简单算法。
blacksatan
2001-02-08 10:32:00
有2,4,8,16四个数,如何判断一个数X是其中哪几个数的和呢?(X必为其中一个或多个数的和)
例如:X=28,28=4+8+16,即28为4,8,16三个数的和。
小弟只会用笨方法,列出它们所有和,放入集合中,然后判断这个数是否其中,可扩展性极差,假如再添加一个数32,再要小弟列出集合就要疯了,请教大家有无好的算法?
...全文
156
2
打赏
收藏
请教一个简单算法。
有2,4,8,16四个数,如何判断一个数X是其中哪几个数的和呢?(X必为其中一个或多个数的和) 例如:X=28,28=4+8+16,即28为4,8,16三个数的和。 小弟只会用笨方法,列出它们所有和,放入集合中,然后判断这个数是否其中,可扩展性极差,假如再添加一个数32,再要小弟列出集合就要疯了,请教大家有无好的算法?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Smile_Tiger
2001-02-08
打赏
举报
回复
因为你提供的四个数正好是2的倍数,所以求X的二进制形式,对应位上为0表示没该数,为1表示有。
例如:28的二进制形式为 b11100,所以它是 1 * 16 + 1 * 8 + 1 * 4 + 0 * 2 + 0 * 1
另外因为没有1,所以2,4,8,16只能组合成 2--30之间的偶数
求二进制形式的方法可以用除2取余法
friendkey
2001-02-08
打赏
举报
回复
把X转换为二进制数,看看哪位是1,就有相应的数字。如:28转换为二进制为11100,从低到高第3、4、5位是1,那么它就是2^(3-1)+2^(4-1)+2^(5-1)=28。也就是说,第N位是1,则加数中就有2的N-1次方。
华中科技大学数据结构与
算法
分析实验-内部排序实验报告
本实验旨在深入理解并掌握常见内部排序
算法
,包括直接插入排序、冒泡排序、
简单
选择排序、快速排序、希尔排序和堆排序。通过实际操作和性能比较,实验者能够对这些
算法
有更直观的认识,并能对不同场景下排序
算法
的...
【程序设计基础】C/C++编程练习:上机测试题集锦与解析-涵盖发奖金、求闰年数等经典
算法
题目
涵盖多个编程练习题目,包括但不限于:发奖金(优化纸币组合)、求闰年数(计算指定年份内的闰年总数)、猴子吃桃(使用倒推法解决递减问题)、小游戏(判断数字之和是否为特定数值的倍数)、考拉兹猜想(验证数学...
在vivado2019.2平台中通过verilog开发电梯控制系统,含testbench测试程序+代码仿真操作视频
1.领域:FPGA,电梯控制
算法
2.内容:在vivado2019.2平台中通过verilog开发电梯控制系统,含testbench测试程序+代码仿真操作视频 3.用处:用于电梯控制
算法
编程学习 4.指向人群:本科,硕士,博士等教研使用 5....
ACM在线训练方法
这表明训练是
一个
长期且不断积累的过程。 训练步骤包括注册注意事项、选择合适的题目进行训练、独立思考和解决问题、求助以及总结。注册时要在指定的在线评测系统(如北京大学的POJ系统)上注册,并且在注册名中...
Timus_Beginner
Timus Online Judge是
一个
专门用于编程竞赛和
算法
练习的在线系统,它提供了丰富的题目供用户进行编程挑战,以提升
算法
理解和编程技能。"Beginner"级别是入门阶段,适合刚刚接触
算法
或编程基础较薄弱的学习者。 在...
数据结构与算法
33,028
社区成员
35,337
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章