中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-09 02:57
47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行
DOS批处理 & 脚本技术(批处理室) » [已结]一道题
可打印版本  1,844 / 19
第1楼 pusofalse 发表于 2008-07-08 10:57
银牌会员 发帖 646 积分 1,604
[已结]一道题
有过这样一道题,某位朋友从C题目中选出来的。。但当时讨论时这题没有给出答案。
今天忽然想起来,发上来一起做做。。。
n个人围成1圈,顺序排号,从1到3开始报数,报到3的人退出这个圈子,问最后留下的那个人是原来的几号?

[ Last edited by pusofalse on 2008-7-8 at 12:51 PM ]
第2楼 26933062 发表于 2008-07-08 11:11
银牌会员 发帖 879 积分 2,268
是n个人吗?没有具体的人数?
第3楼 pusofalse 发表于 2008-07-08 11:13
银牌会员 发帖 646 积分 1,604
n 是用户输入的数字
第4楼 26933062 发表于 2008-07-08 11:19
银牌会员 发帖 879 积分 2,268
仍不太明白题意
假设有 a b c d e f g h 8人
当数到3时,c 退出,然后该如何?又从1开始数起吗?若是,是从a开始数还是从d开始数?
第5楼 pusofalse 发表于 2008-07-08 11:24
银牌会员 发帖 646 积分 1,604
数到3,c退出,然后接着从d开始数1,那么轮到f数到3,f退出。g接着数1,h是2,然后接着返回a,a又退出。第二次循环时b是1,d又推出。如此循环,直到只剩一个人,问这个人是原来的几号。。。
第6楼 26933062 发表于 2008-07-08 11:46
银牌会员 发帖 879 积分 2,268
不知道对不对,初步测试是对的
:

[ Last edited by 26933062 on 2008-7-8 at 12:25 PM ]
第7楼 pusofalse 发表于 2008-07-08 12:01
银牌会员 发帖 646 积分 1,604
有8个人时,留下的是原来的8号,而不是7号。
第8楼 26933062 发表于 2008-07-08 12:21
银牌会员 发帖 879 积分 2,268
怎么会呢?
我手工数 8 个人都是剩下 7 号啊?

1 2 3 4 5 6 7 8
1 2 4 5 6 7 8
1 2 4 5 7 8
2 4 5 7 8
2 4 7 8
4 7 8
4 7
7
第9楼 pusofalse 发表于 2008-07-08 12:23
银牌会员 发帖 646 积分 1,604
我写了一通,发现和前辈的竟然运行结果都一样。。。完全一样。。。


[ Last edited by pusofalse on 2008-7-8 at 12:52 PM ]
第10楼 26933062 发表于 2008-07-08 12:27
银牌会员 发帖 879 积分 2,268
看了 8 楼 的回帖了吗?
第11楼 pusofalse 发表于 2008-07-08 12:35
银牌会员 发帖 646 积分 1,604
SORRY

是我错了。。。
疏漏了一个。。。

[ Last edited by pusofalse on 2008-7-8 at 12:39 PM ]
第12楼 radem 发表于 2008-07-08 13:10
高级用户 发帖 383 积分 691
1 2 3 4 5 6 7 8
1 2 4 5 7 8
2 4 7 8
4 7
7
第13楼 HAT 发表于 2008-07-08 14:06
版主 发帖 5,017 积分 9,023
著名的约瑟夫环问题
第14楼 terse 发表于 2008-07-08 22:08
银牌会员 发帖 946 积分 2,404
Originally posted by 26933062 at 2008-7-8 11:46:
不知道对不对,初步测试是对的

@echo off&setlocal enabledelayedexpansion
set /a n=8
for /l %%a in (1 1 !n!) do set str=!str! a%%a
call :loop !str!
for %%a in (!str!) d ...

虽结贴 还是有点疑问
刚试一下 发现数字大了不行
写一个也是超1856就不行

下面的也是勉强处理稍大一点
第15楼 26933062 发表于 2008-07-08 22:51
银牌会员 发帖 879 积分 2,268
大数字不行的原因是 超出了变量的最大字符数。
看谁有心思挑战这个难关。。。
1 2  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023