Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

บิชอปสูงสุดที่สามารถวางบนกระดานหมากรุก N*N ใน C++


เราได้รับอินพุต N ซึ่งหมายถึงขนาดของกระดานหมากรุก ภารกิจที่นี่คือการค้นหาค่า NXN ใดๆ ว่ามีบิชอปจำนวนเท่าใดที่สามารถวางบนกระดานหมากรุก NXN เพื่อไม่ให้บิชอปสองคนโจมตีกันเองได้ มาทำความเข้าใจกับตัวอย่างกัน

บิชอปสูงสุดที่สามารถวางบนกระดานหมากรุก N*N ใน C++

ป้อนข้อมูล − 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