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

นับช่องสี่เหลี่ยมที่มีความยาวด้านคี่ในกระดานหมากรุกใน C++


กำหนดขนาดตัวเลขเป็นอินพุตเป็นขนาดของกระดานหมากรุกขนาด*ขนาด เป้าหมายคือการหาจำนวนช่องสี่เหลี่ยมที่สามารถก่อตัวขึ้นภายในกระดานนั้นที่มีความยาวคี่

ตัวอย่าง

อินพุต

size=3

ผลลัพธ์

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

คำอธิบาย

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

นับช่องสี่เหลี่ยมที่มีความยาวด้านคี่ในกระดานหมากรุกใน C++

อินพุต

size=4

ผลลัพธ์

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

คำอธิบาย

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

แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้

ในวิธีนี้เราจะสำรวจจากความยาวของสี่เหลี่ยมจัตุรัสเท่ากับ 1 ไปจนถึงความยาวตามขนาด สำหรับแต่ละความยาวคี่ เราจะเพิ่ม ( size−i-1)2 ในการนับ

  • ใช้ขนาดจำนวนเต็มเป็นอินพุตสำหรับด้านกระดานหมากรุก

  • ฟังก์ชัน square_odd_length(ขนาด int) ใช้ขนาดและส่งกลับจำนวนช่องสี่เหลี่ยมที่มีความยาวด้านคี่ในกระดานหมากรุก

  • นับเริ่มต้นเป็น 0

  • ข้ามจาก i=1 ถึง i=ขนาดเพิ่มขึ้น 2 สำหรับค่าคี่ของ i

  • สำหรับแต่ละฉันใช้ temp=size−i+1

  • เพิ่ม temp*temp เพื่อนับ

  • ที่ส่วนท้ายของ for loop return นับเป็นผลลัพธ์

ตัวอย่าง

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

ผลลัพธ์

หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -

Count squares with odd side length in Chessboard are: 56