网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
成为超级会员,使用一键签到
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
08月06日
漏签
0
天
c++吧
关注:
627,663
贴子:
2,112,933
看贴
图片
吧主推荐
游戏
10
回复贴,共
1
页
<<返回c++吧
>0< 加载中...
算法是真的难
只看楼主
收藏
回复
嘻哈至尚哈
&
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
关于这段求2^n的函数代码,真的好难理解啊(之前书上有个递归版本,那个很好理解,但这段代码是迭代版本,***难理解了
)
嘻哈至尚哈
&
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
主要是while循环里的理解不了,有没有大佬能指点我一下
2025-08-06 15:20:17
广告
不感兴趣
开通SVIP免广告
冰雪无痕
==
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
毕竟算法加数据结构就是程序嘛!
西塞罗神
<<
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
如果有7个物品,二进制中7为111,那么可以看成4+2+1,这就是代码中的意思。二进制有很多神奇之处,树状数组,多重背包,状态压缩种种都会用到。
我们打算去
|
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
假设计算2^3 取n=3,为方便表示
在二进制中取8位:0000 0011
n&1 即0000 0011&0000 0001=0000 0001 有非0位为真
pow=pow{1}*p{2}=2
n>>1 向右移一位,空位补0 即 0000 0001
p=2*2=4
n&1 即0000 0001&0000 0001 为真
pow=pow{2}*p{4}=8
n>>1 向右移一位,空位补0 即 0000 0000
p=4*4=16
此时
n=0000 0000=0(D) 不满足n>0 结束循环
所以运算结果 pow=8
M_P_C_King
<
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
其实写成二进制形式也许真的更容易看明白……
110010=100000+10000+10
TrulyTruly
&
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
楼主的意思是不是能看懂算法但自己设计不出来啊
我就是这样
钢铁拳渣
贴吧拳王争霸赛中累计获取10场胜利
活动截止:2016-03-06
去徽章馆》
运球帝
,
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
2^n为啥不是1<<n?
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示