|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Laa 2:5020/400 20 Jan 2002 18:03:44 To : Laa Subject : Re: Re^3: Задчи про шахматы (0/1) -------------------------------------------------------------------------------- On Sat, 19 Jan 2002 15:16:28 +0000 (UTC), Laa <l1a9j3ps@narzan.com> wrote: >On Wed, 16 Jan 2002 05:52:08 +0300, Sergey Politov ><Sergey.Politov@p18.f176.n5015.z2.fidonet.org> wrote: > > >> SP>> А тебе не кажется, что я об этом уже писал, только там горизонтали были? >> AZ> Hет. =============== >> Hу если на горизонтали есть клетки, которые не бъет стоящей на ней ферзь, >>то я с тобой соглашусь. > >Лови примеры на Паскале и Васике > >My best regards!!! >Laa program GITMO_TASK12; {°НббвНЅјХУН дЙа·ЙФ} {By Valeriy Pisarkov PVI http://pvi.da.ru} var input, output:text; n:byte; mas:array[1..100] of byte; procedure fz(gn:byte); var g, x, y, i, j:byte; new:boolean; begin y:=gn; for x:=1 to n do {ЮјЦєЁаНЙѕ ЖјЦејЦпйЁФ, ИЙёНйЁФ ЅН ёјаЁ·јЅвНИЁ} begin new:=false; if gn=1 then begin mas[y]:=x; fz(gn+1); end else for j:=1 to gn-1 do begin if (((mas[j]+j = x+y ) or (mas[j]-j = x-y)) or (mas[j] = x)) then begin new:=true; break; end; end; if new then continue; mas[y]:=x; if gn=n then {ЩбИЁ ЅНиИЁ УјѕєЁЅНжЁо} begin {ЪлХјЦ Х дНФИ} for i:=1 to n do begin for g:=1 to n do if mas[i]<>g then write(output, '| ') else write(output, '# '); writeln(output); end; writeln(output); close(input); close(output); halt(0); end else fz(gn+1); end; exit; end; begin assign(input, 'in-t12.txt'); assign(output, 'out-t12.txt'); reset(input); rewrite(output); read(input, n); fz(1); close(input); close(output); end. DECLARE SUB Try (i!) DECLARE SUB PrintResult () RANDOMIZE TIMER: CLS DIM SHARED True, False True = NOT False DIM SHARED a(1 TO 8), b(2 TO 16), c(-7 TO 7), x(1 TO 8), coun, sluch slush = INT(RND * 91 + 1) FOR i = 1 TO 8: a(i) = True: NEXT FOR i = 2 TO 16: b(i) = True: NEXT FOR i = -7 TO 7: c(i) = True: NEXT Try 1 SUB PrintResult CLS coun = coun + 1 PRINT coun; "°ЙиЙЅЁЙ", PRINT FOR i = 3 TO 10 FOR j = 1 TO 16 STEP 2 LOCATE i, j: PRINT CHR$(254) '"#" NEXT: NEXT FOR i = 1 TO 8 LOCATE i + 2, x(i) + x(i) - 1: PRINT CHR$(6) '"O" NEXT END SUB SUB Try (i) FOR j = 1 TO 8 IF a(j) AND b(i + j) AND c(i - j) THEN x(i) = j a(j) = False b(i + j) = False c(i - j) = False IF i < 8 THEN Try i + 1 ELSE PrintResult a(j) = True b(i + j) = True c(i - j) = True END IF NEXT END SUB --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/20804dac98c2.html, оценка из 5, голосов 10
|