{使用crt}
const maxn = 100;{可以打印的幻方的最大階數}
定義變量
a:數組:= 6;a:= 8;
對於i:=4到k+2做a[1,I]:= I+7;
對於j:=5到k+3做a[j,n]:= k+5+j;
對於i:=2*k+2到3*k做a[n,I]:= 7+I;
對於j:=2*k+3到4*K做a[j,1]:= K+5+j;
對於i:=3*k+1到4*k-1做a[n,I]:= 2 * k+5+I;
對於j:=k+4到2*k+2做a[j,n]:= 5 * k+1+j;
對於i:=k+3到2*k+1做a[1,I]:= 6 * k+1+I;
對於i:=2到n-1 do
開始
如果a[i,1]=0那麽a[i,1]:=n*n+1-a[i,n]
else a[i,n]:=n*n+1-a[i,1];
如果a[1,i]=0那麽a[1,i]:=n*n+1-a[n,i]
else a[n,i]:=n*n+1-a[1,I];
結束;
結束;
(*************************)
開始
{ clrscr}
對於i:=1到maxn do
對於j:=1到maxn做a[i,j]:= 0;
write(' Enter n:');
readln(n);
如果(n & lt=2)或(n & gtmaxn)然後退出;
如果是奇數(n ),則為oddHF(n)
否則,如果n mod 4=0,則DevenHF(n)
else seven HF(n);
prn(n);
寫('保存到文件(是/否)?');
readln(ch);
if (ch=' y ')或(ch=' y ')則prntofile(n);
writeln(‘j . t . Chang的程序’);
結束。