批處理輸出n階幻方腳本

字號:


    批處理輸出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