Computer >> Máy Tính >  >> Lập trình >> C ++

Chương trình tìm số ô vuông trong bàn cờ vua trong C ++

Trong bài toán này, chúng ta đưa ra kích thước của một bàn cờ vua. Nhiệm vụ của chúng tôi là tạo một chương trình để tìm số ô vuông trong bàn cờ vua bằng C ++.

Mô tả sự cố - Để tìm số ô vuông trong bàn cờ vua. Chúng ta sẽ phải tính toán tất cả các kết hợp của hình vuông bên trong bàn cờ, tức là chúng ta sẽ xem xét các hình vuông có cạnh 1x1, 2x2, 3x3… nxn.

Hãy lấy một ví dụ để hiểu vấn đề,

Đầu vào: n =4.

Chương trình tìm số ô vuông trong bàn cờ vua trong C ++

Đầu ra :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

Phương pháp tiếp cận giải pháp:

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 )

Ví dụ

#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);
}

Đầu ra:

The total number of squares of size 6X6 is 91