ในปัญหานี้ เราได้รับขนาดของกระดานหมากรุก งานของเราคือสร้างโปรแกรมหาจำนวนสี่เหลี่ยมในกระดานหมากรุกใน C++
คำอธิบายปัญหา – เพื่อหาจำนวนสี่เหลี่ยมในกระดานหมากรุก เราต้องคำนวณทุกการจัดหมู่ของสี่เหลี่ยมที่อยู่ภายในกระดาน หมายถึงเราจะพิจารณาสี่เหลี่ยมขนาด 1x1, 2x2, 3x3 ... nxn
ตัวอย่างเพื่อความเข้าใจ
อินพุต: n = 4.

เอาต์พุต: 30
สี่เหลี่ยมขนาด 1x1 -> 16 สี่เหลี่ยมขนาด 2x2 -> 9 สี่เหลี่ยมขนาด 3x3 -> 4 สี่เหลี่ยมขนาด 4x4 -> 1 จำนวนสี่เหลี่ยมทั้งหมด = 16+9+4+1 = 30
วิธีแก้ปัญหา:
วิธีง่ายคือใช้สูตรผลรวมสำหรับกริด nxn sum(1) = 1 sum(2) = 1 + 4 = 5 sum(3) = 1 + 4 + 9 = 14 sum(4) = 1 + 4 + 9 + 16 = 30 ผลรวมสามารถสรุปได้ว่า sum = 1² + 2² + 3² + 4² + ... n² sum = (n * (n+1) * (2n + 1)) / 6
ตัวอย่าง
#include <iostream>
using namespace std;
int calcSquaresCount(int n){
int squareCount = ((n * (n+1) * (2*n + 1)) / 6);
return squareCount;
}
int main() {
int n = 6;
cout << "The total number of squares of size " << n << "X" << n << " is " << calcSquaresCount(n);
}เอาต์พุต:
The total number of squares of size 6X6 is 91