批处理输出n阶幻方脚本
2014-05-13来源:

批处理输出n阶幻方脚本

幻方又称为魔方,方阵或厅平方。在一个由若干个排列整齐的数组成的正方形中,图中任意一横行、一纵行及对角线的几个数之和都相等,具有这种性质的图表,称为“幻方”,下面是一个用批处理输出n阶幻方的示例

中国古代称为“河图”、“洛书”,又叫“纵横图”。

代码如下:

@echo off

:start

set /p n=Please input your odd integer:

set /a p=n%%2

if %p% equ 0 echo Input error!&&goto start

set /a i=%n%

set /a t=(%n%+1)/2

set /a a%t%_%n%=1,temp=1,m=n-1,p=n

:repeat

set /a p-=1

if %p% lss 0 goto array

for /l %%a in (1 1 %m%) do (

setlocal enabledelayedexpansion

if !t! gtr %n% set /a t=1

if !i! gtr %n% set /a i=1

set /a s=!t!+1,q=!i!+1

if !s! gtr %n% set /a s=1

if !q! gtr %n% set /a q=1

set /a a!s!_!q!=a!t!_!i!+1,t+=1,i+=1

set /a temp+=1

if !temp! equ %n% (

set /a temp=1,tmp=a!s!_!q!,q-=1,i-=1

if !q! equ 0 set /a q=n

set /a a!s!_!q!=tmp+1

goto repeat

)

)

pause

:array

echo Now behold the powerful Magic Sqaure^^!:

set /a a!t!_!n!=1

for /l %%c in (!n! -1 1) do (

for /l %%d in (1 1 !n!) do (

set /a result=a%%d_%%c

set /p=!result!<nul

)

echo.

)

pause>nul

更多信息请查看IT技术专栏

推荐信息
Baidu
map