我写了个纯六位数的试验代码,从头算到尾(999999)花了四分半钟,你看着办吧
@echo off
Setlocal enabledelayedexpansion
::限制输入字符的个数
:again
echo.
set /p pass=请输入6位数以内的数字:
echo.
for /l %%i in (1,1,10) do (
if "!pass:~%%i,1!"=="" set ab=%%i&goto :out
)
:out
if %ab% gtr 6 echo ···输入错误,你输入了!ab!个数字···&goto :again
:again_
if not %time:~-3%==.00 goto :again_
set time_b=%time%
for /l %%a in (0 1 9) do (
for /l %%b in (0 1 9) do (
for /l %%c in (0 1 9) do (
for /l %%d in (0 1 9) do (
for /l %%e in (0 1 9) do (
for /l %%f in (0 1 9) do (
if %%f==%pass% echo 你输入的是%pass%&goto :count_
if %%e%%f==%pass% echo 你输入的是%pass%&goto :count_
if %%d%%e%%f==%pass% echo 你输入的是%pass%&goto :count_
if %%c%%d%%e%%f==%pass% echo 你输入的是%pass%&goto :count_
if %%b%%c%%d%%e%%f==%pass% echo 你输入的是%pass%&goto :count_
if %%a%%b%%c%%d%%e%%f==%pass% echo 你输入的是%pass%&goto :count_
))))))
::运行结束,下面计算运行代码花费的时间
:count_
set time_e=%time%
set min_b=%time_b:~3,2%
set sec_b=%time_b:~6,2%
set min_e=%time_e:~3,2%
set sec_e=%time_e:~6,2%
if %sec_e% lss %sec_b% (
if %min_e% lss %min_b% set /a sec_e+=60&set /a min_e+=59
)
if %sec_e% lss %sec_b% (
if %min_e% gtr %min_b% set /a sec_e+=60&set /a min_e-=1
)
set /a min_used=1%min_e%-1%min_b%
set /a sec_used=1%sec_e%-1%sec_b%
echo.
echo 开始时间:%time_b%
echo 结束时间:%time_e%
echo 运行时间为: %min_used:~-2%分 %sec_used:~-2%.%time_e:~-2%秒
echo.&pause&cls&goto :again