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

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


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

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

มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน

ป้อนข้อมูล: n =4.

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

ผลผลิต :30

Squares of size 1x1 -> 16
Squares of size 2x2 -> 9
Squares of size 3x3 -> 4
Squares of size 4x4 -> 1
Total number of squares = 16+9+4+1 = 30

แนวทางแก้ไข:

A simple approach is by using the sum formula for nxn grid.
Let’s deduct the general formula for the sum,
sum(1) = 1
sum(2) = 1 + 4 = 5
sum(3) = 1 + 4 + 9 = 14
sum(4) = 1 + 4 + 9 + 16 = 30
The sum is can be generalised as
sum = 12 + 22 + 32 + 42 + … n2
sum = ( (n*(n+1)*((2*n) + 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