中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-05 22:02
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [原创]*****猫吃鼠***** 查看 663 回复 1
楼 主 [原创]*****猫吃鼠***** 发表于 2007-09-24 13:43 ·  中国 北京 电信
银牌会员
★★★
积分 2,098
发帖 566
注册 2007-09-11 07:27
18年会员
UID 97070
性别 男
状态 离线
@echo off
setlocal enabledelayedexpansion
:::::::::::::::::::::::::::: 猫吃鼠 ::::::::::::::::::::::::::::
::::::::::::::::::::::::::::{s11ss 2007-9-24}::::::::::::::::::::::::::::
echo 问题:
echo x只老鼠围成一圈,花猫从第一只开始数,数到y或y的倍数就吃掉,问每一次吃掉的是站在第几个位置上的老鼠?
set/p x=请输入x的值:
set/p y=请输入y的值:
for /l %%i in (1,1,%x%) do (
set n%%i=False
)
set/a r=%x%
set/a xx=%x%+1
set/a seq=1
set/a counter=1
set f=
set /p w=是否将解决方案写入到文件%x%_%y%_CatEatRat.txt?(y/n):
echo 计算中...
if not %w% equ y (if not %w% equ Y (goto :main))
cd.>%x%_%y%_CatEatRat.txt
set f=^>^>%x%_%y%_CatEatRat.txt
:main
%f% echo 第 * 次吃掉的是站在第 * 个位置上的老鼠:
:out
if !r! gtr 0 (
set/a flag=1
:in
if !flag! leq %y% (
if !n%seq%! equ False (set/a flag+=1)
if %seq% equ %xx% set/a seq=0
set/a seq+=1
goto :in
)
set/a seq-=1
set n%seq%=True
set/a r-=1

%f% echo %counter%==================%seq%
set/a counter+=1
goto :out
)
echo 方案已解决。
echo 按任意键退出...
pause>nul
2 发表于 2007-09-24 14:30 ·  中国 新疆 乌鲁木齐 电信
初级用户
积分 97
发帖 41
注册 2007-08-30 19:05
18年会员
UID 96211
性别 男
状态 离线
牛!
这样的问题,需要学习算法,实际上还有一些类似的问题:
比如:6555--9555里一共有多少个含数字“6”且能被3整除 的数字?
论坛跳转: