中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-14 20:57
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已解决]罗列用不同数字组成的所有三位数
楼 主 [已解决]罗列用不同数字组成的所有三位数 发表于 2007-01-27 02:00 ·  中国 辽宁 本溪 联通
银牌会员
★★★
积分 1,212
发帖 464
注册 2006-12-13 21:11
UID 73417
性别 男
状态 离线
想写一个三位数的数字组合(如001,002...999),排除有两位数相等的(如001,112,313,449 等)组合以及三位数都相等的(如000,111...999)。

注:012,021,120,102,210,201这里只取任意一种,其它以此类推。

[ Last edited by jmz573515 on 2007-1-26 at 06:41 PM ]
2 合你心愿 发表于 2007-01-27 02:10 ·  中国 江苏 南京 电信
初级用户
★★
积分 138
发帖 50
注册 2007-01-23 10:59
UID 77428
性别 男
状态 离线
dim msg
combine "0123456789",3,""
msgbox msg
Sub Combine(sar,num,str)
If num=0 Then
msg=msg&str&";"
Else
For i=1 To Len(sar)
Call Combine(Right(sar,Len(sar)-i),num-1,str&Mid(sar,i,1))
Next
End If
End Sub
本帖最近评分记录 (共 2 条) 点击查看详情
评分人分数时间
ccwan +5 2007-01-27 02:37
jmz573515 +4 2007-01-27 08:11
3 发表于 2007-01-27 02:13 ·  中国 辽宁 本溪 联通
银牌会员
★★★
积分 1,212
发帖 464
注册 2006-12-13 21:11
UID 73417
性别 男
状态 离线
好,学习了。

(现在受限不能加分,过后补上。)
4 发表于 2007-01-27 02:40 ·  中国 广东 电信
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
UID 51697
来自 成都
状态 离线
  我跟一个BAT版的,是用组合数的思路:

@echo off
set str=0123456789
cd.>result.txt
setlocal enabledelayedexpansion
for /l %%i in (0,1,7) do (
set /a num1=%%i+1
for /l %%j in (!num1!,1,8) do (
set /a num2=%%j+1
for /l %%k in (!num2!,1,9) do (
set /a count+=1
echo !str:~%%i,1!!str:~%%j,1!!str:~%%k,1!>>result.txt
)
)
)
echo 各个数位上的数字互不相同,且组成该数的数字与其他数中的数字不完全相同的三位数有 %count% 个>>result.txt
start result.txt

  遵照ccwan的建议,加上了统计结果。

[ Last edited by namejm on 2007-1-26 at 11:08 PM ]
本帖最近评分记录 (共 2 条) 点击查看详情
评分人分数时间
ccwan +5 2007-01-27 02:46
jmz573515 +4 2007-01-27 23:45
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
5 发表于 2007-01-27 03:01 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
UID 63486
来自 河北廊坊
状态 离线
斑斑的代码总是那么精彩,欣赏~~
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
6 发表于 2007-01-27 03:01 ·  中国 辽宁 本溪 联通
银牌会员
★★★
积分 1,212
发帖 464
注册 2006-12-13 21:11
UID 73417
性别 男
状态 离线
谢谢二位!
7 发表于 2007-04-19 10:02 ·  中国 陕西 西安 电信
初级用户
★★
积分 112
发帖 50
注册 2007-04-15 00:59
UID 85191
性别 男
状态 离线
二楼用C写得,比较简单!我喜欢4楼给出的代码,谢谢二位!
8 发表于 2007-05-08 10:37 ·  中国 广东 中山 电信
初级用户
★★
积分 127
发帖 62
注册 2007-04-19 12:43
UID 85744
性别 男
状态 离线
学到东西了!
论坛跳转: