北航機試13年02題 簡單八皇后

2021-08-16 17:13:52 字數 1344 閱讀 7766

題目:簡單八皇后

描述:如何能夠在8 x 8的西洋棋棋盤上放置八個皇后,使得任何乙個皇后都無法直接吃掉其他已經正確地放置了七個皇后,編寫程式求出最後乙個皇后的位置。

注意: 皇后能橫、豎、斜著走

輸入:按照棋盤行從小到大的順序從控制台輸入已正確放置的皇后的列數,未放置皇后的行用字元「」來表示。各列數和字元「」之間沒有任何其他字元分隔,在輸入末尾有回車換行符。假如上圖第四行未放置皇后,其他七個皇后都已經放置完畢,則輸入的形式為:627*4853

輸出:在標準輸出上輸出最後乙個皇后放置的列數,若無解,輸出字串「no answer」

樣例:輸入

輸出627*4853

13681*752

41357246*

no answer

直接上**

/*

北航機試13年02八皇后:

*/#include"stdafx.h"

#include

int a[9][9];

bool flag; //判斷已給定位置的皇后之間是否有衝突

//第i行第j列為皇后,把該皇后能影響的位置設定為1

void setvalue(int m, int n)

for(i=1;(m-i)>=0 && (n-i)>=0; i++) //左上角

a[m-i][n-i]=1;

for(i=1;(m-i)>=0 && (n+i)<=8; i++) //右上角

a[m-i][n+i]=1;

for(i=1;(m+i)<=8 && (n-i)>=0; i++) //左下角

a[m+i][n-i]=1;

for(i=1;(m+i)<=8 && (n+i)<=8; i++) //右下角

a[m+i][n+i]=1;

}int main()

int tmp=str[i]-'0';

if(a[i+1][tmp]==0)else

}for(i=1;i<=8;i++)

if(a[last][i]==0)

break;

if(flag && i!=9)

printf("%d\n", i);

else

printf("no answer!\n");

}return

0;}

北航機試12年

問題描述 統計關鍵字出現位置 輸入 一行標準 c 語言 字元個數小於 300 統計出該字串中關鍵字的 if,while,for 所 在的位置,按照關鍵字出現的順序依次輸出。注意雙引號內的不需要統計。輸入 一行標準 c 語言 字元個數小於 300 輸出 關鍵字 if,while,for 對應的位置,按...

北航2023年機試

1.從輸入的字串中,統計空格,回車,tab出現的次數 include include includeint main str i 0 int len strlen str space 0,enter 0,tab 0 for i 0 i3.多項式相加 include includetypedef st...

2023年北航機試第三題 排版題

題目描述 輸入若干行字元,表示某電影的演職員表,每行只有乙個冒號,冒號前面是職位,冒號後面是姓名,要求把各行冒號對齊,刪除多餘空格後輸出。先輸入乙個字,表示排版要求的冒號位置該位置號保證比各行冒號前的最大字元數還要大。再輸入若干行字元,最多50行,每行最多100個字元,除空格 製表符和回車之外都是有...