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