程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> N皇後問題,n皇後

N皇後問題,n皇後

編輯:關於C語言

N皇後問題,n皇後


題目描述

       在n×n格的棋盤上放置彼此不受攻擊的n個皇後。按照國際象棋的規則,皇後可以攻擊與之處在同一行或同一列或同一斜線上的棋子。n後問題等價於再n×n的棋盤上放置n個後,任何2個皇後不妨在同一行或同一列或同一斜線上。

輸入輸出格式

輸入描述:

給定棋盤的大小n (n ≤ 13)

輸出描述:

輸出整數表示有多少種放置方法。

輸入輸出樣例

輸入樣例#1:

8

輸出樣例#1:

92

思路

搜索。

代碼

#include<stdio.h> int a[200]={0},b[200]={0},c[200]={0},d[200],p=0; int search(int n,int s) { int i; for(i=1;i<=n;i++) { if(a[i]==0&&b[i+s]==0&&c[s-i+n-1]==0) { a[i]=1;b[i+s]=1;c[s-i+n-1]=1;d[s]=i; if(s==n) p++; else search(n,s+1); a[i]=0;b[i+s]=0;c[s-i+n-1]=0; } } } int main() { int n; scanf("%d",&n); search(n,1); if(p==0) printf("no solute!"); else printf("%d",p); return 0; } View Code

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved