在 C++ 中,N*N 棋盤上最多可以放置多少個主教


給定一個輸入 N,表示棋盤的大小。任務是對於任何 N 值,找到在 NXN 棋盤上可以放置多少個主教,使得任何兩個主教都不能互相攻擊。讓我們透過例子來理解。

輸入 - N=2

輸出 - N*N 棋盤上最多可以放置的主教數量 - 2(如上所示)

說明 - 如上所示,唯一不矛盾的位置是放置主教的位置。2X2 棋盤上最多可放置兩個主教。

輸入 - N=5

輸出 - N*N 棋盤上最多可以放置的主教數量:8(如上所示)

下面程式中使用的演算法如下

  • 我們將一個整數值 N 作為棋盤維度的輸入。

  • 將此 N 作為引數傳遞給 totalBishops(int n)。

  • 對於 N<1 的無效輸入,主教數量=0。

  • 對於 N=1,只有一個位置,主教數量=1。

  • 否則,主教數量將為 2*(N-1)

  • 將此結果儲存在變數 bishops 中。

  • 返回結果。

示例

 線上演示

#include <iostream>
//to return maximum bishops possible
int totalBishops(int n){
   int bishops=0;
   if (n < 1)
      bishops= 0;
   else if (n == 1)
      bishops= 1;
   else
      bishops= 2 * (n - 1);
   return bishops;
}
int main(){
   int N = 15; //for chessboard dimensions N*N
   printf("%d" ,totalBishops(N));
   return 0;
}

輸出

如果我們執行以上程式碼,它將生成以下輸出:

28

更新於:2020年8月17日

314 次瀏覽

開啟您的職業生涯

完成課程後獲得認證

開始
廣告
© . All rights reserved.