:: 批处理版的。
@echo off
color fc
title hannoi
Call :main
pause
exit /b 0
:main
call :about
echo === 此程序显示汉诺塔的解法。 ===
echo.
:input
set /p n="请输入汉诺塔的层数n, (n正整数): "
set /a n+=0
if %n% lss 1 (
echo 您的输入有错误! & goto input
)
echo.
echo %n% 层汉诺塔最快解如下
call :hannoi %n% a b c
echo 至少需要移动 %errorlevel%次, (即2^^n - 1)
echo.
exit /b %n%
:more
echo %1 %2-^>%3
goto :EOF
:hannoi
set /a i=%1-1
if %1 lss 1 (goto :EOF) else (
call :hannoi %i% %2 %4 %3
:: echo %2-^>%4
call :more %1 %2 %4
set /a errorlevel+=1
call :hannoi %i% %3 %2 %4
)
goto :EOF
:about
echo ┏ About ━━━━━━━━━━━┓
echo ┃ 文件: Hannoi.bat ┃
echo ┃ 名称: 汉诺塔(Hannoi) ┃
echo ┃ 作者: cosdos ┃
echo ┃ 时间: 2008-6-23 19:11 ┃
echo ┗━━━━━━━━━━━━━━━┛
echo.
goto :EOF
[[it] 本帖最后由 cosdos 于 2008-7-4 19:34 编辑 [/it]]