Программа нахождения волшебного квадрата размером 9Х9
Категория: Delphi/Pascal
2011-10-02 21:51:23
Магический, или волшебный квадрат — это квадратная таблица, заполненная n2 числами, таким образом, что сумма чисел в каждой строке, каждом столбце и на обеих диагоналях оказывается одинаковой.
code: #pascal
program volhebniy_kvadrat; uses crt; var per,a:array[1..9] of integer; incl:array[1..9] of boolean; s:array[1..8] of integer; t,i,j:integer; nep:boolean; procedure perest(p:integer); var c:integer; begin if p-1=9 then begin nep:=false; s[1]:=per[1]+per[5]+per[9]; s[2]:=per[1]+per[4]+per[7]; s[3]:=per[2]+per[5]+per[8]; s[4]:=per[3]+per[6]+per[9]; s[5]:=per[3]+per[5]+per[7]; s[6]:=per[1]+per[2]+per[3]; s[7]:=per[4]+per[5]+per[6]; s[8]:=per[7]+per[8]+per[9]; for i:=1 to 8 do for j:=1 to 8 do if s[i]<>s[j] then nep:=true; if nep=false then begin writeln; t:=t+1; for i:=1 to 9 do begin write(per[i]); end; end; end; for c:=1 to 9 do begin if not incl[c] then begin per[p]:=a[c]; incl[c]:=true; perest(p+1); per[p]:=0; incl[c]:=false; end; end; end; begin clrscr; for i:=1 to 9 do begin a[i]:=i; write(a[i],' '); end; perest(1); writeln; writeln(t); readkey; end.
автор: Tayfun
Поделиться: