1樓:匿名使用者
秒過n=15有難度,甚至枯廳我覺得不太現實……(我小弱……)沒培隱。
我能寫的中首最快的程式大概只能秒過n=14……
幫我看看n皇后問題這個程式**出錯了啊
2樓:
看了好久你的程式,終於發現了錯誤。(看別人的程式太惱火了)當最後乙個皇后放在合適的位置時,先進入(flag==1&&j==n)的條件,輸出結果,這時flag==1,繼續最後乙個皇后尋找位置,找不到。進入(flag==0&&a[j]==n),前乙個皇后尋找位置。
但當最後乙個皇后放在右下角的位置時,先輸出結果,這時flag還是==1,但已經找到最後乙個位置,無法將flag=0,所以無法進入(flag==0&&a[j]==n),所以再繼續尋找就出錯了。只要在後面加上"if(a[j] =n) flag=0"就行。
下面是用你的程式改的:
#include
#include
int k=0,a[20],j=1,flag,n,c=0;//k為解的個數,n為皇后的個數,flag標記有沒有放置皇后。
void lycqueen()/兩個皇后在同一行或者同一對角線上,衝突。
else flag=1;//沒衝突,放置乙個皇后//for
沒試探完,繼續試探。
if(flag==1&&j==n)//遞迴呼叫if(flag==0&&a[j]==n)//回溯,退回去重新試探//for
lycqueen
void main(){
int i;
printf("請輸入皇后的個數:")
scanf("%d",&n);/輸入皇后的個數nj=1; for(i=1;i<=n;i++)a[j]=i;
j=j+1;
lycqueen();呼叫lycqueen函式if(c==1) j=1;
forprintf("解的個數為%d個",k);
main我只測試了乙個8,結果是對的哈,有問題再說。
3樓:網友
除錯的時候報什麼錯啊。
4樓:網友
今天看了一下午,還是沒找出錯誤。
身心俱疲啊。
只是發現,當最後乙個皇后放在最下面的時候(就是右下角那個位置),就會出錯。而且將錯n-1次。
再慢慢看下。
n皇后問題
5樓:來根黃瓜不切片
輸出結果沒有做什麼處理。
直接列印的。
以前寫過列印圖形的,懶得搞了。
#include
#include
bool place(int x,int k) //考察皇后k放置在x[k]列是否發生衝突。
else if (x[k]<=n &&k>n;
int *x=new int[n];
x[0]=0;
queue(n,x);
return 0;}
n皇后問題到底是什麼問題??
6樓:網友
**於西洋棋中的皇后,通常叫8皇后問題,即在乙個n×n的棋盤上擺放n個皇后,使其中任意兩個皇后都不同列、同行和在一條斜線上。
在資料結構中這是乙個經典的例子,使用棧和遞迴可以求解,請參考《資料結構》,清華大學出版社,嚴蔚敏等編寫。
7樓:網友
n皇后問題。
問題描述:**於西洋棋中的皇后,通常叫8皇后問題,即在n*n的棋盤上,放置n個皇后,要求每一橫行,每一列,每一對角線上均只能放置乙個皇后,求可能的方案及方案數。
解決方案:program n_queens;
const n=8;
vara:array[1..n] of integer;
mk:array[1..n] of boolean;
total:integer;
procedure output;
var i:integer;
begininc(total);
write('no.':4,'[',total:2,']');
for i:=1 to n do write(a[i]:3);
writeln;
end;function can(d:integer):boolean;
var i:integer;
begincan:=false;
if mk[a[d]] then exit;
for i:=1 to d-1 do
if abs(a[i]-a[d])=abs(i-d) then exit;
can:=true;
end;procedure dfs(d:integer);
var i,j:integer;
beginif (d>n) then
beginoutput;
exit;end;
for i:=1 to n do
begina[d]:=i;
if can(d) then
beginmk[i]:=true;
dfs(d+1);
mk[i]:=false;
end;end;
end;begin
fillchar(mk,sizeof(mk),0);
dfs(1);
writeln('total = ',total);
end.
n皇后問題 c++
8樓:
回溯演算法的典型例子嘛。你會用回溯演算法,這個題目基本是解決了。
誰能給我解釋一下什麼是n-皇后?
9樓:網友
假設有一n×n的棋盤和n個皇后,請為這n個皇后進行佈局使得這n個皇后互不攻擊(即任意兩個皇后不在同一行,同一列,同一對角線)求各種可能的情況。
輸入數字n,求123n的和寫程式
等於 n 1 乘於二分之一的n include using namespace std int main cout dim s,s1 s 1,s1 0 input n for k 1 to n for j 1 to n s s j next j s1 s1 s next k msgbox s1 用c...
求乙個24秒微控制器c語言程式 5
求乙個秒微控制器c語言程式 include define uchar unsigned charuchar times,sec tisr interrupt th tl times if times times sec main tmod x th tl tr et ea sec times whil...
急求有誰知道泰國人妖皇后POY拍過的電影或者連續劇麼
是有那麼個電視劇,但我忘了叫什麼名字。回頭再幫你看看吧!話說回來,這小丫頭 丫頭?第一次看到她 她?的時候還弄得我心跳加速了好幾下。因為我會泰文,我能給你幾個連結,這裡的 是一般你從知道的回答裡找不到滴。這裡還有泰國其他漂漂妹妹。記得采納啊 泰國人妖皇后poy演出過什麼電影或者是電視劇 愛你每一天 ...