标题: [数值计算] BAT批处理如何把 1 3 4 9 这4组数的3位数不同组合显示出来? [打印本页]
作者: lanwen 时间: 2014-4-26 13:42 标题: BAT批处理如何把 1 3 4 9 这4组数的3位数不同组合显示出来?
bat 如何把 1 3 4 9 这4组数的3位数不同组合显示出来
我知道一共有64种组合要求就是
输入4组不同的数 显示出这4组数的 所有3位数组合
作者: Batcher 时间: 2014-4-26 13:51
P(4,3) = 24
不是64吧?
作者: digger 时间: 2014-4-27 00:11
- @echo off&setlocal enabledelayedexpansion
- set /p b=请输入4位数(中间用空格分开):
- for %%i in (!b!) do (
- for %%j in (!b!) do (
- set c=!b:%%j=!
- for %%k in (!c!) do set d=%%j%%k&if "!d:%%i=!"=="!d!" echo %%i!d!
- )
- )
- pause
复制代码
作者: CrLf 时间: 2014-4-27 00:30
楼主说的是不是重复排列:- @echo off
- set b=1 3 6 9
- for %%i in (%b%) do (
- for %%j in (%b%) do (
- for %%k in (%b%) do echo %%i %%j %%k
- )
- )
- pause
复制代码
作者: terse 时间: 2014-4-27 02:09
貌似3楼正解八- @echo off&setlocal enabledelayedexpansion
- set var=1 2 3 4
- for %%i in (!var!) do (
- set a=!var:%%i=!
- for %%j in (!a!) do (
- set a=!var:%%j=!
- for %%k in (!a:%%i^=!) do echo %%i %%j %%k
- )
- )
- pause
复制代码
作者: zhanglei1371 时间: 2014-4-28 16:08
再来个更简单的:
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))
)
)
)
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |