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

โปรแกรมหาจำนวนสี่เหลี่ยมในกระดานหมากรุกใน C++

ในปัญหานี้ เราได้รับขนาดของกระดานหมากรุก งานของเราคือสร้างโปรแกรมหาจำนวนสี่เหลี่ยมในกระดานหมากรุกใน C++

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

ตัวอย่างเพื่อความเข้าใจ

อินพุต: n = 4.

โปรแกรมหาจำนวนสี่เหลี่ยมในกระดานหมากรุกใน C++

เอาต์พุต: 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