生成四个1-9的随机数,再进行计算。
代码有缺陷,欢迎大家测试,也欢迎大家帮忙修改。 | @echo off | | title 三八二十四 | | cd/d "%~dp0" | | | | ::临时文件→ | | echo +^ | | | | -^ | | | | *^ | | | | />TMP_fh | | if not #%1==# %0 | | ::思路 | | ::%4 %1 %5 %2 %6 %3 %7 | | :: A + B + C + D | | ::ABCD做排列 | | ::符号做循环,并用以下公式加括号 | | echo %%4%%1%%5%%2%%6%%3%%7^ | | | | (%%4%%1%%5)%%2%%6%%3%%7^ | | | | (%%4%%1%%5%%2%%6)%%3%%7^ | | | | %%4%%1(%%5%%2%%6)%%3%%7^ | | | | %%4%%1(%%5%%2%%6%%3%%7)^ | | | | %%4%%1%%5%%2(%%6%%3%%7)^ | | | | (%%4%%1%%5)%%2(%%6%%3%%7)>TMP_gs | | attrib +s +h "TMP_fh" | | attrib +s +h "TMP_gs" | | ::←临时文件 | | | | :bg | | endlocal | | cls | | | | setlocal enabledelayedexpansion | | ::生成四个1-9的数→ | | set/a a=%random%%%9+1,b=%random%%%9+1,c=%random%%%9+1,d=%random%%%9+1 | | echo 四个随机数:%a% %b% %c% %d% | | ::← | | set/p=正在计算,请等待...<nul | | | | set sr1=a b c d | | ::排列(plp626方案)→ | | for %%a in (!sr1!) do (set sr2=!sr1:%%a =! | | for %%b in (!sr2!) do (set sr3=!sr2:%%b =! | | for %%c in (!sr3!) do (set sr4=!sr3:%%c =! | | call :pl %%a %%b %%c !sr4! | | if defined flag goto :show | | ) ) ) | | ::←排列 | | | | :show | | if defined flag ( | | set/p=其中一结果:!fhvar!=%jg%<nul | | ) else ( | | set/p=不好意思,没有算出来...<nul | | ) | | pause>nul | | goto :bg | | | | ::调用标签→ | | :pl | | ::echo !%1! !%2! !%3! !%4! | | call :fh !%1! !%2! !%3! !%4! | | goto :eof | | | | ::符号循环→ | | :fh | | for /f %%i in (TMP_fh) do ( | | for /f %%j in (TMP_fh) do ( | | for /f %%k in (TMP_fh) do ( | | call :crfh %%i %%j %%k %1 %2 %3 %4 | | if defined flag goto :eof | | ) | | ) | | ) | | goto :eof | | ::←符号循环 | | | | :crfh | | ::判断整除(不完善)→ | | if not %1==/ ( | | if not %2==/ ( | | if %3==/ ( | | set/a mod=%6%%%7 | | if !mod! neq 0 goto :eof | | ) | | ) else ( | | set/a mod=%5%%%6 | | if !mod! neq 0 goto :eof | | ) | | ) else ( | | set/a mod=%4%%%5 | | if !mod! neq 0 goto :eof | | ) | | ::←判断整除 | | | | ::七个公式→ | | for /f %%g in (TMP_gs) do ( | | call :isR "%%g" | | if defined flag goto :eof | | ) | | goto :eof | | ::←七个公式 | | | | :isR | | set fhvar=%~1 | | set/a jg=%fhvar% 2>nul | | if #!jg!==#24 set flag=1 | | goto :eofCOPY |
|