本帖最后由 aa77dd@163.com 于 2015-6-28 00:57 编辑
- @echo off
- for /l %%# in (1 1 99999) do call :Collatz %%#
- exit
- :Collatz
- set "X=%1" & set "out="
- :loop
- (
- set "out=%out%%X%,"
- if %X% equ 1 echo,%out%1 & echo, & exit /b
- set /a "t = (X & 1) << 31 >> 31, X = t & (X << 1) + X + 1 | ~t & X >> 1"
- goto :loop
- )
- exit /b
复制代码
|