楼 主
[求助]批处理写递归型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
性别 男
状态 离线
第 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
论坛跳转: