中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-09 00:17
47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行
DOS批处理 & 脚本技术(批处理室) » 出个小题,消遣一下~
可打印版本  670 / 10
第1楼 pusofalse 发表于 2008-06-07 23:09
银牌会员 发帖 646 积分 1,604
出个小题,消遣一下~
有点无聊。。

一堆球,红球,黑球,白球,各是7个,8个,5个,要求从中随意取出13个,这13个当中,必须最少有3个红球。输出所有可能的组合方式~
第2楼 slore 发表于 2008-06-07 23:24
铂金会员 发帖 2,478 积分 5,212
3 5 5
3 6 4
3 7 3
3 8 2
4 4 5
4 5 4
4 6 3
4 7 2
4 8 1
5 3 5
5 4 4
5 5 3
5 6 2
5 7 1
6 2 5
6 3 4
6 4 3
6 5 2
6 6 1
7 1 5
7 2 4
7 3 3
7 4 2
7 5 1
第3楼 26933062 发表于 2008-06-08 00:27
银牌会员 发帖 879 积分 2,268
楼上的好像不全
:
第4楼 pusofalse 发表于 2008-06-08 00:32
银牌会员 发帖 646 积分 1,604
2楼 貌似没有考虑黑球是0个,或者白球是0个的情况~ 题中已经说明了是任意。。。 还有附加条件,红球必须最少3个
第5楼 pusofalse 发表于 2008-06-08 00:35
银牌会员 发帖 646 积分 1,604
抛砖引玉,希望能求得更多的解
@echo off&setlocal enabledelayedexpansion
echo %time%
for /l %%r in (3 1 7) do (
for /l %%b in (0 1 8) do (
for /l %%w in (0 1 5) do (
set/a res=%%r+%%b+%%w
if !res! equ 13 echo %%r %%b %%w
)
)
)
echo %time%
pause
第6楼 26933062 发表于 2008-06-08 00:38
银牌会员 发帖 879 积分 2,268
5楼的简洁多了,
靠居然忘了 把for 从0开始,白搞了那么多if判断。
第7楼 ness 发表于 2008-06-08 00:41
新手上路 发帖 4 积分 8
第8楼 ness 发表于 2008-06-08 00:41
新手上路 发帖 4 积分 8
怎么一会工夫有人发了啊
第9楼 pusofalse 发表于 2008-06-08 00:43
银牌会员 发帖 646 积分 1,604
7楼的朋友,真是同出一辙啊!~ 想到一块去了~^_^
第10楼 slore 发表于 2008-06-08 01:27
铂金会员 发帖 2,478 积分 5,212
@echo off&setlocal enabledelayedexpansion
echo %time%
for /l %%r in (3 1 7) do (
for /l %%w in (0 1 5) do (
set/a res=13-%%r-%%w
if !res! LSS 9 echo %%r !res! %%w
)
)
echo %time%
pause
第11楼 pusofalse 发表于 2008-06-08 01:32
银牌会员 发帖 646 积分 1,604
真的是太棒了!运行时间,绝对的0.00秒。。。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023