标题: [数值计算] [已解决]求助批处理6659四个数值计算24点 [打印本页]
作者: GNGW 时间: 2024-3-14 14:43 标题: [已解决]求助批处理6659四个数值计算24点
本帖最后由 GNGW 于 2024-3-18 13:52 编辑
6、6、5、9 四个数字,每个数字出现了几次,在运算过程中,就只能使用这几个数字几次,且不能使用其他数字,加减乘除随意组合,运算优先级随意搭配,总之在运算过程中,只能用2次6 ,1次5,1次9,并且不能使用其他数,计算最终结果是24(请用batch批处理脚本代码实现)
作者: semiuel 时间: 2024-3-14 17:05
很久以前网上下载的批处理算24点的脚本,忘记出处了。- @echo off
- setlocal enableextensions enabledelayedexpansion
- title 批处理算24点
- echo 批处理算24点&echo.
- :loop
- set /p "n=输入四个数用空格分开: "
- set /a "lzn=0"
- for %%i in (!n!) do set /a "lzn+=1"&set /a "lz!lzn!z=%%i,lz!lzn!m=1,lz!lzn!s=%%i"
- call:liuzhaonan11 lz
- if not errorlevel 1 echo 结果: 没有答案
- goto loop
- 原理说明:使用有理数进行计算,选择算式中最先结合的两数和它们之间的运算,并递归.
- :liuzhaonan11
- setlocal
- set "f1=+"&set "f2=-"&set "f3=*"&set "f4=/"
- for /l %%i in (1,1,!%1n!) do for /l %%j in (1,1,!%1n!) do if %%i neq %%j (
- for /l %%k in (1,1,4) do (
- setlocal
- if %%k leq 2 set /a "z=%1%%jz*%1%%im!f%%k!%1%%jm*%1%%iz,m=%1%%jm*%1%%im"
- if %%k equ 3 set /a "z=%1%%jz*%1%%iz,m=%1%%jm*%1%%im"
- if %%k equ 4 set /a "z=%1%%jz*%1%%im,m=%1%%jm*%1%%iz"
- if !%1n! equ 2 (
- set /a "t=!z!-24*!m!"
- if !t! equ 0 if !m! neq 0 echo 结果: !%1%%js! !f%%k! !%1%%is! = 24&exit /b 1
- ) else (
- set "s=(!%1%%js! !f%%k! !%1%%is!)"&set /a "n=0"
- for /l %%l in (1,1,!%1n!) do if %%l neq %%i if %%l neq %%j (
- set /a "n+=1"&set "%1!n!z=!%1%%lz!"&set "%1!n!m=!%1%%lm!"&set "%1!n!s=!%1%%ls!"
- )
- set /a "n+=1"&set "%1!n!z=!z!"&set "%1!n!m=!m!"&set "%1!n!s=!s!"
- set "%1n=!n!"&call%0 %1
- if errorlevel 1 exit /b 1
- )
- endlocal
- )
- )
- exit /b 0
复制代码
作者: semiuel 时间: 2024-3-14 17:09
有可能脚本出自本论坛,反正我是看不懂。
作者: Batcher 时间: 2024-3-18 13:57
回复 3# semiuel
http://bbs.bathome.net/thread-4711-1-1.html
作者: GNGW 时间: 2024-3-18 14:05
回复 4# Batcher
感谢回复,已经找到此帖代码,您帮忙看下这贴 http://www.bathome.net/thread-68649-1-1.html
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |