中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-05 17:02
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]批处理写递归型hanoi 查看 710 回复 5
楼 主 [求助]批处理写递归型hanoi 发表于 2007-09-03 10:55 ·  中国 陕西 延安 电信
初级用户
积分 58
发帖 22
注册 2006-12-07 00:25
19年会员
UID 72763
性别 男
状态 离线
想用批处理写个hanoi,没有成功。
一些残代码:


setlocal ENABLEDELAYEDEXPANSION
set /p n="请输入汉诺塔层数:"
call :hanoi !n! a b c
:hanoi
pause
if !1! EQU 1 (
echo !2!到!4!
) else (
set /a "!1!-=1"
call :hanoi !1! !2! !4! !3!
echo !2!到!4!
set /a "!1!-=1"
call :hanoi !1! !3! !2! !4!
)
pause


能否改改,使之运行?
2 发表于 2007-09-03 11:04 ·  中国 天津 电信
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
19年会员
UID 75624
性别 男
状态 离线
!1!这些变量从哪来的?
3 发表于 2007-09-03 14:44 ·  中国 陕西 延安 电信
初级用户
积分 58
发帖 22
注册 2006-12-07 00:25
19年会员
UID 72763
性别 男
状态 离线
Originally posted by wudixin96 at 2007-9-3 11:04 AM:
!1!这些变量从哪来的?

1:接收n传参;
2:接收a;
3:接收b;
4:接收c。
4 发表于 2007-09-03 16:29 ·  中国 天津 电信
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
19年会员
UID 75624
性别 男
状态 离线
那也是%1、%2、%3、%4啊

怎么会变成

%1%、…………
5 发表于 2007-09-04 08:20 ·  中国 陕西 延安 电信
初级用户
积分 58
发帖 22
注册 2006-12-07 00:25
19年会员
UID 72763
性别 男
状态 离线
Originally posted by wudixin96 at 2007-9-3 04:29 PM:
那也是%1、%2、%3、%4啊

怎么会变成

%1%、…………

不懂,
哪位能做个可以正常运行的出来么(顺便附上点注释)?
6 发表于 2007-09-04 09:47 ·  中国 山东 淄博 联通
中级用户
★★
积分 272
发帖 99
注册 2006-06-02 09:12
20年会员
UID 56414
状态 离线
这个代码可以得到hanoi序列:

@echo off
setlocal ENABLEDELAYEDEXPANSION
set /p n="请输入汉诺塔层数:"
call :hanoi %n% A B C
goto :EOF

:hanoi
if %1 LEQ 1 (
echo %2 -^> %4
) else (
set /a n=%1-1
call :hanoi !n! %2 %4 %3
echo %2 -^> %4
set /a n=%1-1
call :hanoi !n! %3 %2 %4
)
goto :EOF
论坛跳转: