在 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.