中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 用批处理算24点 上一主题 | 下一主题
terse
银牌会员





积分 2404
发帖 946
注册 2005-9-8
状态 离线
『楼 主』:  用批处理算24点

因除运算有错,舍弃它了,但也能算出一部分,故权当娱乐而已,
修改输入同数出错
@echo off&setlocal enabledelayedexpansion
set/p a=输入第一个数:
set/p b=输入第二个数:
set/p c=输入第三个数:
set/p d=输入第四个数:
set m1=+&set m2=-&set m3=*
:a
set/a n+=1
for /l %%a in (1,1,3) do (
  for /l %%b in (1,1,3) do (
    for /l %%c in (1,1,3) do (
      set/a str=a!m%%a!b!m%%b!c!m%%c!d
      if "!str!" == "24" set/p=%a%!m%%a!%b%!m%%b!%c%!m%%c!%d%=!str!&exit

      set/a str=^(a!m%%a!b^)!m%%b!c!m%%c!d
      if "!str!" == "24" set/p=^(%a%!m%%a!%b%^)!m%%b!%c%!m%%c!%d%=!str!&exit

      set/a str=a!m%%a!^(b!m%%b!c^)!m%%c!d
      if "!str!" == "24" set/p=%a%!m%%a!^(%b%!m%%b!%c%^)!m%%c!%d%=!str!&exit

      set/a str=a!m%%a!b!m%%b!^(c!m%%c!d^)
      if "!str!" == "24" set/p=%a%!m%%a!%b%!m%%b!^(%c%!m%%c!%d%^)=!str!&exit

      set/a str=^(a!m%%a!b!m%%b!c^)!m%%c!d
      if "!str!" == "24" set/p=^(%a%!m%%a!%b%!m%%b!%c%^)!m%%c!%d%=!str!&exit

      set/a str=a!m%%a!^(b!m%%b!c!m%%c!d^)
      if "!str!" == "24" set/p=%a%!m%%a!^(%b%!m%%b!%c%!m%%c!%d%^)=!str!&exit

      set/a str=^(a!m%%a!b^)!m%%b!^(c!m%%c!d^)
      if "!str!" == "24" set/p=^(%a%!m%%a!%b%^)!m%%b!^(%c%!m%%c!%d%^)=!str!&exit

      set/a str=^(a!m%%a!^(b!m%%b!c^)^)!m%%c!d
      if "!str!" == "24" set/p=^(%a%!m%%a!^(%b%!m%%b!%c%^)^)!m%%c!%d%=!str!&exit

      set/a str=^(^(a!m%%a!b^)!m%%b!c^)!m%%c!d
      if "!str!" == "24" set/p=^(^(%a%!m%%a!%b%^)!m%%b!%c%^)!m%%c!%d%=!str!&exit

      set/a str=a!m%%a!^(b!m%%b!^(c!m%%c!d^)^)
      if "!str!" == "24" set/p=%a%!m%%a!^(%b%!m%%b!^(%c%!m%%c!%d%^)^)=!str!&exit

      set/a str=a!m%%a!^(^(b!m%%b!c^)!m%%c!d^)
      if "!str!" == "24" set/p=%a%!m%%a!^(^(%b%!m%%b!%c%^)!m%%c!%d%^)=!str!&exit
      )
     )
    )
      if !n! lss 4 set/a a=%b%,b=%c%,c=%d%,d=%a%&goto a
      if !n! lss 5 set/a a=%b%,b=%c%,c=%a%,d=%d%&goto a
      if !n! lss 8 set/a a=%b%,b=%c%,c=%d%,d=%a%&goto a
      if !n! lss 9 set/a a=%d%,b=%a%,c=%c%,d=%b%&goto a
      if !n! lss 12 set/a a=%b%,b=%c%,c=%d%,d=%a%&goto a
      if !n! lss 13 set/a a=%a%,b=%b%,c=%d%,d=%c%&goto a
      if !n! lss 16 set/a a=%b%,b=%c%,c=%d%,d=%a%&goto a
      if !n! lss 17 set/a a=%b%,b=%a%,c=%c%,d=%d%&goto a
      if !n! lss 20 set/a a=%b%,b=%c%,c=%d%,d=%a%&goto a
      if !n! lss 21 set/a a=%b%,b=%c%,c=%a%,d=%d%&goto a
      if !n! lss 24 set/a a=%b%,b=%c%,c=%d%,d=%a%&goto a
echo.
echo 对不起,没算出来!
echo.
pause

@echo off&setlocal enabledelayedexpansion
set/p var=输入4个数(空格隔开)
for %%i in (!var!) do set/a n+=1&set !n!=%%i
set m1=+&set m2=-&set m3=*
for /l %%i in (1 1 %n%) do (
  for /l %%j in (1 1 %n%) do (
    for /l %%k in (1 1 %n%) do (
      for /l %%l in (1 1 %n%) do (
      if not "%%i"=="%%j" (
      if not "%%i"=="%%k" (
      if not "%%i"=="%%l" (
      if not "%%j"=="%%k" (
      if not "%%j"=="%%l" (
      if not "%%l"=="%%k" (
      if not defined %%i%%j%%k%%l set %%i%%j%%k%%l=ok&(
      for /l %%a in (1,1,3) do (
        for /l %%b in (1,1,3) do (
          for /l %%c in (1,1,3) do (
      set/a str=!%%i!!m%%a!!%%j!!m%%b!!%%k!!m%%c!!%%l!
      if "!str!" == "24" set/p=!%%i!!m%%a!!%%j!!m%%b!!%%k!!m%%c!!%%l!=!str!&exit

      set/a str=^(!%%i!!m%%a!!%%j!^)!m%%b!!%%k!!m%%c!!%%l!
      if "!str!" == "24" set/p=^(!%%i!!m%%a!!%%j!^)!m%%b!!%%k!!m%%c!!%%l!=!str!&exit

      set/a str=!%%i!!m%%a!^(!%%j!!m%%b!!%%k!^)!m%%c!!%%l!
      if "!str!" == "24" set/p=!%%i!!m%%a!^(!%%j!!m%%b!!%%k!^)!m%%c!!%%l!=!str!&exit

      set/a str=!%%i!!m%%a!!%%j!!m%%b!^(!%%k!!m%%c!!%%l!^)
      if "!str!" == "24" set/p=!%%i!!m%%a!!%%j!!m%%b!^(!%%k!!m%%c!!%%l!^)=!str!&exit

      set/a str=^(!%%i!!m%%a!!%%j!!m%%b!!%%k!^)!m%%c!!%%l!
      if "!str!" == "24" set/p=^(!%%i!!m%%a!!%%j!!m%%b!!%%k!^)!m%%c!!%%l!=!str!&exit

      set/a str=!%%i!!m%%a!^(!%%j!!m%%b!!%%k!!m%%c!!%%l!^)
      if "!str!" == "24" set/p=!%%i!!m%%a!^(!%%j!!m%%b!!%%k!!m%%c!!%%l!^)=!str!&exit

      set/a str=^(!%%i!!m%%a!!%%j!^)!m%%b!^(!%%k!!m%%c!!%%l!^)
      if "!str!" == "24" set/p=^(!%%i!!m%%a!!%%j!^)!m%%b!^(!%%k!!m%%c!!%%l!^)=!str!&exit

      set/a str=^(!%%i!!m%%a!^(!%%j!!m%%b!!%%k!^)^)!m%%c!!%%l!
      if "!str!" == "24" set/p=^(!%%i!!m%%a!^(!%%j!!m%%b!!%%k!^)^)!m%%c!!%%l!=!str!&exit

      set/a str=^(^(!%%i!!m%%a!!%%j!^)!m%%b!!%%k!^)!m%%c!!%%l!
      if "!str!" == "24" set/p=^(^(!%%i!!m%%a!!%%j!^)!m%%b!!%%k!^)!m%%c!!%%l!=!str!&exit

      set/a str=!%%i!!m%%a!^(!%%j!!m%%b!^(!%%k!!m%%c!!%%l!^)^)
      if "!str!" == "24" set/p=!%%i!!m%%a!^(!%%j!!m%%b!^(!%%k!!m%%c!!%%l!^)^)=!str!&exit

      set/a str=!%%i!!m%%a!^(^(!%%j!!m%%b!!%%k!^)!m%%c!!%%l!^)
      if "!str!" == "24" set/p=!%%i!!m%%a!^(^(!%%j!!m%%b!!%%k!^)!m%%c!!%%l!^)=!str!&exit
))))))))))))))
echo.
echo 对不起,没算出来!
echo.
pause
[ Last edited by terse on 2008-7-6 at 11:12 PM ]

   此帖被 +4 点积分      点击查看详情   
评分人:【 plp626 分数: +4  时间:2008-3-28 13:12




简单!简单!再简单!
2008-3-28 02:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 2 楼』:  

有意思,



山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
2008-3-28 13:12
查看资料  发短消息 网志   编辑帖子  回复  引用回复
huahua0919
银牌会员




积分 1608
发帖 780
注册 2007-10-7
状态 离线
『第 3 楼』:  

10,10,4,4

2008-3-28 14:03
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
terse
银牌会员





积分 2404
发帖 946
注册 2005-9-8
状态 离线
『第 4 楼』:  



  Quote:
Originally posted by huahua0919 at 2008-3-28 14:03:
10,10,4,4

(10*10-4)/4 式中包含除运算的还是不能完成  所以此P有局限性



简单!简单!再简单!
2008-3-28 14:18
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wyl091256
新手上路





积分 10
发帖 5
注册 2008-4-20
状态 离线
『第 5 楼』:  有意思,

有意思,

2008-4-20 12:48
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ktv98
初级用户





积分 112
发帖 81
注册 2008-4-11
状态 离线
『第 6 楼』:  

还无法达到这种水平

2008-4-20 16:14
查看资料  发送邮件  发短消息 网志  OICQ (408130581)  编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: