[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[数值计算] BAT批处理如何把 1 3 4 9 这4组数的3位数不同组合显示出来?

bat 如何把 1 3 4 9 这4组数的3位数不同组合显示出来
我知道一共有64种组合要求就是
输入4组不同的数  显示出这4组数的 所有3位数组合
1

评分人数

P(4,3) = 24
不是64吧?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. set /p b=请输入4位数(中间用空格分开):
  3. for %%i in (!b!) do (
  4.   for %%j in (!b!) do (
  5.   set c=!b:%%j=!
  6.   for %%k in (!c!) do set d=%%j%%k&if  "!d:%%i=!"=="!d!" echo %%i!d!
  7. )
  8. )
  9. pause
复制代码

TOP

楼主说的是不是重复排列:
  1. @echo off
  2. set b=1 3 6 9
  3. for %%i in (%b%) do (
  4.   for %%j in (%b%) do (
  5.     for %%k in (%b%) do echo %%i %%j %%k
  6. )
  7. )
  8. pause
复制代码

TOP

貌似3楼正解八
  1. @echo off&setlocal enabledelayedexpansion
  2. set var=1 2 3 4
  3. for %%i in (!var!) do (
  4.     set a=!var:%%i=!
  5.     for %%j in (!a!) do (
  6.         set a=!var:%%j=!
  7.         for %%k in (!a:%%i^=!) do echo %%i %%j %%k
  8.     )
  9. )
  10. pause
复制代码

TOP

再来个更简单的:
set "v=1 2 3 4"
for %%i in (%v%) do (
        for %%j in (%v%) do (
                for %%k in (%v%) do (
                        if %%i neq %%j (if %%i neq %%k (if %%j neq %%k echo %%i%%j%%k))
                )
        )
)

TOP

返回列表