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

นับจำนวนสี่เหลี่ยมจัตุรัสในสี่เหลี่ยมผืนผ้า ใน C++

ได้รับสี่เหลี่ยมผืนผ้าขนาด L × B (L ≥ B) ต้องการนับจำนวนสี่เหลี่ยมจัตุรัสทุกขนาดที่อยู่ภายในได้

สูตร

  • สี่เหลี่ยมจัตุรัสขนาด 1×1: L×B ชิ้น
  • สี่เหลี่ยมจัตุรัสขนาด 2×2: (L-1)×(B-1) ชิ้น
  • ...
  • สี่เหลี่ยมจัตุรัสขนาด B×B: (L-B+1)×1 ชิ้น

รวม = Σᵢ₌₁ᴮ (L-i+1)(B-i+1)

สามารถคำนวณได้จาก: ผลรวม i² สำหรับ i=1..B บวก (L-B)×B×(B+1)/2

ตัวอย่าง

อินพุต: L = 4, B = 2

เอาต์พุต: 11 (8 ชิ้น 1×1, 3 ชิ้น 2×2)

อินพุต: L = 3, B = 3

เอาต์พุต: 14 (9+4+1)

ตัวอย่างโค้ด C++

#include <iostream>
using namespace std;

int numofSquares(int l, int b) {
    int squares = 0;
    for (int i = 1; i <= b; i++) {
        squares += i * i; // สี่เหลี่ยมในส่วน B×B
    }
    squares += (l - b) * b * (b + 1) / 2; // คอลัมน์เพิ่มเติม
    return squares;
}

int main() {
    int length = 5, breadth = 4;
    cout << "Count of squares is: " << numofSquares(length, breadth);
    return 0;
}

ผลลัพธ์

Count of squares is: 40