?? 1.八皇后問題.cpp
字號:
//1.八皇后問題
#include<stdio.h>
#define n 8
int m=1,a[n];
int ok(int i,int j) //此函數測試其位置是不是合適
{
int t,b,ok1;
t=j;b=i;ok1=1;
while((t>1)&&ok1) //檢查行是否合適
{t--;ok1=a[t]!=i; }
t=j;b=i;
while((t>1)&&(b>1)&&ok1) //檢查一個對角線是否合適
{t--;b--;ok1=a[t]!=b;}
t=j;b=i;
while((t>1)&&(b<n)&&ok1) //檢查另一個對角線是不是合適
{t--;b++;ok1=a[t]!=b;}
return ok1;
}
unknown2(int j)
{
int i;
if (j>n) {m++;printf("m=%d",m-1);
for (i=1;i<=n;i++)
{printf(" %d",a[i]); }
printf("\n "); }
else for(i=1;i<=n;i++)
if(ok(i,j)){a[j]=i;unknown2(j+1);}
return m;
}
main()
{
unknown2(1);
printf("NUMBER=%d \n", m-1 );
return 1;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -