เราได้รับอินพุต N ซึ่งหมายถึงขนาดของกระดานหมากรุก ภารกิจที่นี่คือการค้นหาค่า NXN ใดๆ ว่ามีบิชอปจำนวนเท่าใดที่สามารถวางบนกระดานหมากรุก NXN เพื่อไม่ให้บิชอปสองคนโจมตีกันเองได้ มาทำความเข้าใจกับตัวอย่างกัน
ป้อนข้อมูล − 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