[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
这时候就能看出位运算的强大了啊。用位运算解此题,核心代码大概不会超过5行~
心绪平和,眼藏静谧。

TOP

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

TOP

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

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

TOP

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

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

TOP

回复 15楼 的帖子

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

TOP

返回列表