变态跳台阶(2的幂次方)(一行代码解决)

题目:一个变态一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该变态跳上一个n级的台阶总共有多少种跳法。

分析:每个台阶都有跳与不跳两种情况(除了最后一个台阶),最后一

个台阶必须跳。所以共用2^(n-1)种情况。

最快代码:

return  1<<--number;

惊恐                                   (代码出处:https://www.nowcoder.com/questionTerminal/22243d016f6b47f2a6928b4313c85387 HXY)

利用了移位运算符:<<(变成二进制并且向左移位,空出的填0),相当于乘以2.

同理的还有>>(向右移位,空出的填符号位,即负数填1正数填0),相当于除以2.


当然,这是先计算出结果后写的代码,若直接用代码解决可以考虑动态规划和循环(代码略)。

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页