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

Đếm hình vuông có độ dài cạnh lẻ trong Bàn cờ bằng C ++


Cho một kích thước số làm đầu vào là kích thước của kích thước * size Bàn cờ. Mục tiêu là tìm số ô vuông có thể được tạo thành bên trong bảng có độ dài lẻ.

Ví dụ

Đầu vào

size=3

Đầu ra

Count of squares with odd side length in Chessboard are: 10

Giải thích

All squares will be as shown : and 1 whole square of size 3x3.

Đếm hình vuông có độ dài cạnh lẻ trong Bàn cờ bằng C ++

Đầu vào

size=4

Đầu ra

Count of squares with odd side length in Chessboard are: 20

Giải thích

there will be 16, 1X1 squares. And 4, 3X3 squares inside it.

Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau -

Trong cách tiếp cận này, chúng ta sẽ chuyển từ chiều dài của hình vuông là 1 đến chiều dài là kích thước. Đối với mỗi độ dài lẻ, chúng tôi sẽ thêm (size − i − 1) 2 vào số đếm.

  • Lấy kích thước số nguyên làm đầu vào cho mặt của Bàn cờ.

  • Hàm square_odd_length (int size) lấy kích thước và trả về số lượng các ô vuông có độ dài cạnh lẻ trong Bàn cờ.

  • Lấy số lượng ban đầu là 0.

  • Di chuyển từ i =1 đến i =kích thước tăng lên 2 đối với các giá trị lẻ của i.

  • Đối với mỗi tôi lấy temp =size − i + 1.

  • Thêm temp * tạm thời để đếm.

  • Kết quả là số lượng trả về ở cuối vòng lặp for.

Ví dụ

#include <bits/stdc++.h>
using namespace std;
int square_odd_length(int size){
   int count = 0;
   for (int i = 1; i <= size; i = i + 2){
      int temp = size − i + 1;
      count = count + (temp * temp);
   }
   return count;
}
int main(){
   int size = 6;
   cout<<"Count squares with odd side length in Chessboard are: "<<square_odd_length(size);
   return 0;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

Count squares with odd side length in Chessboard are: 56