返回列表 发帖
这时候就能看出位运算的强大了啊。用位运算解此题,核心代码大概不会超过5行~
心绪平和,眼藏静谧。

TOP

用到了两个位运算符,右移<<和与&,计算n次方是用了<<,分解出是哪些数的和用了按位相与&~
心绪平和,眼藏静谧。

TOP

各位都好厉害,反倒是我的代码复杂了点~
@echo Off & SetLocal EnableDelayedExpansion
set "szResult="
set /p "var=Input: "
For /L %%a in (0 1 31) do (
       set /a n = 1"<<"%%a, m = var "&" n
       If !m! equ !n! set "szResult=!szResult!+!n!"
)
If defined szResult Echo %szResult:~1%
PauseCOPY

[ 本帖最后由 pusofalse 于 2009-3-22 01:52 编辑 ]
心绪平和,眼藏静谧。

TOP

稍稍修改了下,只知1"<<"n 的结果是2的n次方,但不知1"<<"0的结果为何是1?~
结果陷入卡壳中,还计算出了“斐波那契”数列~

[ 本帖最后由 pusofalse 于 2009-3-22 02:09 编辑 ]
心绪平和,眼藏静谧。

TOP

回复 15楼 的帖子

不好意思,刚才大脑短路。。。 我这里也是1 - -||||
心绪平和,眼藏静谧。

TOP

返回列表