本帖最后由 jinzeyu 于 2012-2-20 14:59 编辑
已全部完成
第四题有点没听明白
第四题我是random后订一个范围
(如:random20000后 因为20000大于2012 范围就变成0~19999 下次取值在这个范围里)
这样random次数就能最少
(没想到 规则我蒙对了...)
Q1:
欲取其他数,请改变a的值2012 | @echo off&set b=&set a=2012 | | :1 | | if "%a%"=="" goto 2 | | echo %a:~0,1% | | set "b=%b%%a:~0,1% "&set "a=%a:~1%" | | goto 1 | | :2 | | echo 结果是:%b%&pause>nulCOPY |
欲取其他数,请改变a的值2012 | @echo off&setlocal EnableDelayedExpansion | | set a=2012 | | :1 | | If defined a ( | | set "c=%c%%a:~-1%" | | set "a=%a:~,-1%" | | goto 1 | | ) | | echo %c%&pauseCOPY |
Q2:
欲取其他数,请改变a的值2012 | @echo off&setlocal EnableDelayedExpansion&set b=&set a=2012&set c=0 | | :1 | | if "%a%"=="" goto 2 | | set "b=%b%%a:~0,1% "&set "a=%a:~1%" | | goto 1 | | :2 | | for %%i in (%b%) do set /a c+=%%i | | echo !c!&pauseCOPY |
Q3:
欲取其他数,请改变第三行的2012 | @echo off&set a=0 | | :1 | | if not "%random%"=="2012" (set /a a+=1&goto 1) else echo 运行了%a%次 random=2012&pauseCOPY |
Q4:
如果想取0~2012的值(像lz说的 就把下面的32767改成2012)
欲取其他数,请改变7 8 9行的2012 | @echo off&setlocal enabledelayedexpansion&set /a c=1,zs=0,zd=32767 | | set "tab= " | | ::请把以上的tab换成实际的制表符 为了显示好看点 | | :1 | | set /a a=%random%%%((zd+1)-zs)+zs | | set "ml=echo !c!次%tab%%a%%tab%最多%zd%%tab%最少%zs%" | | if %a% lss 2012 set /a zs=%a%+1&%ml%&set /a c+=1 | | if %a% gtr 2012 set /a zd=%a%-1&%ml%&set /a c+=1 | | if %a% equ 2012 (%ml%&pause>nul&exit) | | goto 1COPY |
Q5:
欲取其他数,请改变第一行的2012 | @set /a "yp=!(2012%%4)&!(!(2012%%100))|!(2012%%400)" | | @if "%yp%"=="1" (@echo 闰年) else (@echo 平年) | | @pauseCOPY |
Q6:
欲取其他数,请改变year的值2012 | @echo off&setlocal EnableDelayedExpansion&set n=0&set year=2012&set /a "yp=^!(year%%4)&^!(^!(year%%100))|^!(year%%400)+28" | | for %%a in (31 !yp! 31 30 31 30 31 31 30 31 30 31) do (set /a n+=1&for /l %%i in (1,1,%%a) do echo %year%年!n!月%%i日) | | pauseCOPY |
Q7:
欲取其他数,请改变第一行的2012 0@for %%i in (xls doc txt pdf gpg) do ((@echo 2012 0)>2012.%%i)COPY Q8:
欲取其他数,请改变a的值2012 | @echo off&setlocal enabledelayedexpansion&set a=2012 | | for %%i in (零0 一1 二2 三3 四4 五5 六6 七7 八8 九9) do (set b=%%i&call:1 !b:~1! !b:~0,1!) | | echo !a! &pause&exit | | :1 | | set a=!a:%1=%2!COPY |
Q9:
欲取其他数,请改变23 29行的2012 | @echo off&setlocal enabledelayedexpansion | | echo 正在初始化中.... | | for /l %%a in (1,1,9) do ( | | set n%%a00=%%a百 | | set n%%a000=%%a千 | | set n%%a=%%a | | if not "%%a"=="1" set i=%%a | | set n%%a0=!i!十 | | for /l %%b in (1,1,9) do ( | | set n%%a%%b0=%%a百%%b十 | | set n%%a%%b00=%%a千%%b百 | | set n%%a%%b=!i!十%%b | | for /l %%c in (1,1,9) do ( | | set n%%a%%b%%c=%%a百%%b十%%c | | set n%%a0%%c=%%a百零%%c | | set n%%a%%b%%c0=%%a千%%b百%%c十 | | set n%%a0%%c0=%%a千零%%c十 | | for /l %%d in (1,1,9) do ( | | set n%%a00%%d=%%a千零%%d | | set n%%a0%%c%%d=%%a千零%%c十%%d | | set n%%a%%b0%%d=%%a千%%b百零%%d | | set n%%a%%b%%c%%d=%%a千%%b百%%c十%%d | | if "%%a%%b%%c%%d"=="2012" call:end | | ) | | ) | | ) | | ) | | :end | | for /l %%a in (1,1,2012) do ( | | set a=!n%%a! | | for %%i in (一1 二2 三3 四4 五5 六6 七7 八8 九9 零0) do ( | | set b=%%i | | call:1 !b:~1! !b:~0,1! | | ) | | echo !a! | | ) | | pause>nul | | :1 | | set a=!a:%1=%2!COPY |
下面这个比上面这个快得多(不算初始化...)可能是call的原因 | @echo off&setlocal enabledelayedexpansion | | echo 正在初始化中.... | | for /l %%a in (1,1,9) do ( | | set n%%a00=%%a百 | | set n%%a000=%%a千 | | set n%%a=%%a | | if not "%%a"=="1" set i=%%a | | set n%%a0=!i!十 | | for /l %%b in (1,1,9) do ( | | set n%%a%%b0=%%a百%%b十 | | set n%%a%%b00=%%a千%%b百 | | set n%%a%%b=!i!十%%b | | for /l %%c in (1,1,9) do ( | | set n%%a%%b%%c=%%a百%%b十%%c | | set n%%a0%%c=%%a百零%%c | | set n%%a%%b%%c0=%%a千%%b百%%c十 | | set n%%a0%%c0=%%a千零%%c十 | | for /l %%d in (1,1,9) do ( | | set n%%a00%%d=%%a千零%%d | | set n%%a0%%c%%d=%%a千零%%c十%%d | | set n%%a%%b0%%d=%%a千%%b百零%%d | | set n%%a%%b%%c%%d=%%a千%%b百%%c十%%d | | if "%%a%%b%%c%%d"=="2012" call:end | | ) | | ) | | ) | | ) | | :end | | set c=0 | | :2 | | set /a c+=1 | | set a=!n%c%! | | set a=!a:1=一! | | set a=!a:2=二! | | set a=!a:3=三! | | set a=!a:4=四! | | set a=!a:5=五! | | set a=!a:6=六! | | set a=!a:7=七! | | set a=!a:8=八! | | set a=!a:9=九! | | set a=!a:0=零! | | echo !a! | | if not "%c%"=="2012" goto 2 | | pause>nulCOPY |
Q10: | @echo off | | call:2 "2012 年 祝 大 家 :" | | call:2 "心 想 事 成" | | call:2 "万 事 如 意" | | call:2 "最 后 祝 大 家" | | call:2 "在 2012 年 12 月 22 日 能 存 活 下 来 . . . . . ." | | set x=0 | | set color=0123456789abcdef | | :3 | | set /a x+=1 | | set /a ra=%random%%%16 | | cmd /v:on /c color !color:~%ra%,1! | | if "%x%"=="70" exit | | goto 3 | | :2 | | set "b=%~1" | | for %%i in (%b%) do ( | | set /p "a=%%i"<nul | | for /l %%x in (1,1,1000) do ver>nul | | ) | | echo.COPY |
|