本帖最后由 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>nul
复制代码 欲取其他数,请改变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%&pause
复制代码 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!&pause
复制代码 Q3:
欲取其他数,请改变第三行的2012- @echo off&set a=0
- :1
- if not "%random%"=="2012" (set /a a+=1&goto 1) else echo 运行了%a%次 random=2012&pause
复制代码 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 1
复制代码 Q5:
欲取其他数,请改变第一行的2012- @set /a "yp=!(2012%%4)&!(!(2012%%100))|!(2012%%400)"
- @if "%yp%"=="1" (@echo 闰年) else (@echo 平年)
- @pause
复制代码 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日)
- pause
复制代码 Q7:
欲取其他数,请改变第一行的2012 0- @for %%i in (xls doc txt pdf gpg) do ((@echo 2012 0)>2012.%%i)
复制代码 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!
复制代码 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!
复制代码 下面这个比上面这个快得多(不算初始化...)可能是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>nul
复制代码 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.
复制代码
|