pascal我在做八皇后問題,不知哪裡錯

2023-01-31 08:25:33 字數 2231 閱讀 3131

1樓:旋風戰鷹

天哪!你這是神馬?

我沒看懂,把我們小時候的program給你吧。

是用boolean陣列做的。

program e08251;

const

n = 4;

vara: array[1..n]of integer;

b: array[1..n]of boolean;

l: array[2..2*n]of boolean;

r: array[-n+1..n-1]of boolean;

count: integer;

procedure print;

vari, j: integer;

begin

inc(count);

writeln('no.', count);

for i:=1 to n do begin

for j:=1 to n do

if a[i] = j then write('*')

else write('-');

writeln;

end;

readln;

end;

procedure try1(i: integer);

varj: integer;

begin

for j:=1 to n do

if b[j] and l[i + j] and r[i - j] then begin

a[i] := j;

b[j] := false; l[i + j] := false; r[i - j] := false;

if i = n then print else try1(i + 1);

b[j] := true; l[i + j] := true; r[i - j] := true;

end;

end;

begin

fillchar(b, sizeof(b), true);

fillchar(l, sizeof(l), true);

fillchar(r, sizeof(r), true);

count := 0;

try1(1);

end.

這是輸出4個皇后,4*4矩陣的各種排列方法。如果要其他的p個皇后,p*p的,則將常量的n改成p。經試驗,本程式只能通過n=1~11

2樓:匿名使用者

我給你個源**,自己去看看吧!!!

源**:

vari,j,k,m,n,s:longint;

a:array[1..10000] of longint;

b,c,d:array[-1000..1000] of longint;

procedure p;

begin

m:=1;

for k:=1 to 8 do

if k<>8 then

write(a[k],' ') else writeln(a[k]);

end;

procedure t(i:longint);

var j:longint;

begin

for j:=1 to 8 do

if (b[j]=0) and (c[i+j]=0) and (d[i-j]=0) then

begin

a[i]:=j;

b[j]:=1;

c[i+j]:=1;

d[i-j]:=1;

if i<8 then t(i+1) else p;

b[j]:=0;

c[i+j]:=0;

d[i-j]:=0;

end;

end;

begin

fillchar(b,sizeof(b),0);

fillchar(c,sizeof(c),0);

fillchar(d,sizeof(d),0);

m:=0;

t(1);

if m=0 then writeln('no solution!');

end.

3樓:匿名使用者

寫的太麻煩了。。。。。。建議看其他的。。。。

4樓:

樓主看一下這個語句是不是有問題就是在for p[8]:=1 to 8 do 下面的 「c:=p;」語句

5樓:匿名使用者

是不是變數p出現了問題?

出馬出道仙我以前夢見自己會飛現在做夢飛不起來什麼意思

練道 元神出走就是這樣感覺 沒什麼的!正常 十二星座分別對應什麼星 1 白羊座 火星 2 金牛座 金星 3 雙子座 水星 4 巨蟹座 月亮 5 獅子座 太陽 6 座 水星 7 天秤座 火星 8 天蠍座 冥王星 9 射手座 木星 10 摩羯座 土星 11 水瓶座 天王星 12 雙魚座 海王星 擴充套件...

我在一家餐廳做了八年,現在做上了經理,但現在想辭職,大家都說餐飲行業是吃青春飯的,等老了就沒人看得

幹了那麼多年,完全可以獨當一面了,我建議你自己再開個餐廳自己當老闆,打工是不可能有出路的 千萬不要放棄你的餐飲行業,即使你辭職也應該去其它餐飲機構就業,而不是跳到一個什麼都不懂的新行業,堅持下起,以後你會成為星級酒店的高層幹部 我是個資深的酒店經理人,現在年薪18萬。哥哥告訴你馬上轉行或者積累資金自...

跪求各位幫忙,我現在做二手房,由於現在市場不好,也沒掙到什麼

這問題你可問到對人,哈哈 首先我在北京生活很久,小學畢業在大望,中學在17中,現在回老家了正在幹二手房,而一手房在北京也幹過 首先二手房產中介是因什麼而存在你想過嗎?二手房中介的存在是因為,在很多想要去買房,而又拿不出現錢來,貸款又找不到廟門,只能求救於中介 所以二手房適合發展的地方在於,正在發展的...