Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 N*N 체스판에 배치할 수 있는 최대 비숍

<시간/>

체스판의 크기를 나타내는 입력 N이 주어집니다. 여기서 작업은 N 값에 대해 두 비숍이 서로 공격할 수 없도록 NXN 체스판에 배치할 수 있는 비숍의 수를 찾는 것입니다. 예를 들어 이해합시다.

C++에서 N*N 체스판에 배치할 수 있는 최대 비숍

입력 - N=2

출력 − N*N 체스판에 놓을 수 있는 최대 비숍 수 − 2(위 그림 참조)

설명 − 위에 묘사된 바와 같이 모순되지 않는 유일한 위치는 감독이 있는 곳입니다. 최대 2X2 체스판용 비숍.

입력 - N=5

출력 − N*N 체스판에 놓을 수 있는 최대 비숍:8(위 그림 참조)

아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.

  • 체스판 차원에 대한 입력으로 정수 값 N을 사용합니다.

  • 이 N을 totalBishops(int n)에 인수로 전달합니다.

  • N<1개의 잘못된 입력의 경우 주교 수=0입니다.

  • N=1의 경우 1개의 위치만, 비숍 수=1입니다.

  • 다른 비숍은 2*(N-1)

  • 이 결과를 가변 비숍에 저장합니다.

  • 결과를 반환합니다.

#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