[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. @echo off&setlocal enabledelayedexpansion
  2. set "Tab= "这里替换为TAB键
  3. :lp
  4. set _n=&set "var="
  5. set /p var=请输入三个杯的大小(空格分隔):
  6. set /p _n=输入你要分出的量:
  7. cls&call :nt %var%
  8. :nt
  9. if "%_n%"=="" echo;输入错误&goto lp
  10. if "%3"=="" echo;输入错误&goto lp
  11. if not "%4"=="" echo;输入错误&goto lp
  12. for /f "delims=0123456789 " %%i in ("%var%%_n%") do set var=var
  13. if "%var%"=="var" echo;输入错误&goto lp
  14.     for %%i in (%var%) do set /a n+=1&set a!n!=%%i
  15.         for /l %%i in (1,1,2) do (
  16.             set /a z=%%i+1
  17.             for /l %%j in (!z!,1,3) do (
  18.             if !a%%i! gtr !a%%j! set/a a%%j=!a%%i!,a%%i=!a%%j!
  19.          )
  20.      )
  21.     for /l %%i in (3,-1,1) do set a%%i=!a%%i!
  22.     set/a a=a3,b=a2,c=a1,x=0,yb=a-b-c,n=0
  23.     if %yb% lss 0 (set/a y=a-b)else set/a y=c
  24. echo;你要分出的量: %_n%
  25. echo;%Tab%%a% %Tab%%b%%Tab%%c%
  26. echo;&echo;初始%Tab%%a%%Tab%0%Tab%0&echo;
  27. set/a a1=a,a2=0,a3=0
  28. call:next %b% %c% %y%
  29. if %yb% lss 0 (set/a y=a-c)else set/a y=b
  30. echo;&echo;初始%Tab%%a%%Tab%0%Tab%0&echo;
  31. set/a a1=a,a2=0,a3=0,n=0
  32. call:next %c% %b% %y%
  33. pause&exit
  34. :next
  35. set/a n+=1
  36. if %a2% equ 0 (
  37.       if %a3% equ %2 echo 不能分出你要的量&pause&exit
  38.       if %a3% geq %3 (set /a a2=%1-a3+%3) else set/a a2=%1
  39.     ) else (
  40.       if %a3% leq %3 (
  41.       set/a a2-=%2-a3,a3=%2
  42.       if !a2! leq 0 set /a a3+=a2,a2=0
  43.     )
  44.       if %a3% geq %3 set a3=0
  45. )
  46. set/a a1=a-a2-a3
  47. echo 第%n%次%Tab%%a1% %Tab%%a2%%Tab%%a3%
  48. if /i "%flag%"=="f" set "flag="&exit/b
  49. if %a1% equ %_n% (set flag=f)else if %a2% equ %_n% (set flag=f)else if %a3% equ %_n% set flag=f
  50. goto next
复制代码
1

评分人数

    • curious: 广度搜索的经典,想不到p也能解出来!PB + 3

TOP

返回列表