[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  不太清楚循环比赛的具体含义,还请明示,以免理解不到位而做无用功。

  另,允许对手重复吗,也就是说,上一次是A对B,下一次他们还能不能作为对手?
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

  思路:把A-G一字排开之后,
  ① 把第1位上的字母拉到最后1位;
  ② 在头6位字母中,第1位和最后1位配对,第2位和倒数第2位配对,第3位和倒数第3位配对;
  ③ 重复以上过程,则7次之后,顺利排完。
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. :Main
  4. cls
  5. set str=A B C D E F G
  6. set total=0
  7. for %%i in (%str%) do set /a total+=1
  8. set /a team=%total%/2
  9. set day=0
  10. for %%i in (%str%) do (
  11.     set str=!str:%%i =! %%i
  12.     set /a day+=1
  13.     set num=0
  14.     for %%j in (!str!) do (
  15.         set /a num+=1
  16.         set str_!num!=%%j
  17.     )
  18.     set str_tmp=
  19.     for /l %%j in (1,1,%team%) do (
  20.         set /a num_tmp=!total!-%%j
  21.         call set str_tmp=!str_tmp!    !str_%%j! vs %%str_!num_tmp!%%
  22.     )
  23.     echo 第!day!天:!str_tmp!    %%i 轮空
  24. )
  25. pause
  26. goto Main
复制代码
3

评分人数

    • netbenton: 妙呀! 我想了半天,找不到方法。PB + 10
    • 随风: 好思路!PB + 5
    • sjzong: 厉害!思路非常好懂!谢谢!PB + 5
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

返回列表