हमें ऊंचाई × चौड़ाई आयामों वाला एक आयत दिया गया है। आयत को 2D निर्देशांक प्रणाली पर दर्शाया गया है जिसका निचला-बायाँ कोना बिंदु (0,0) पर है। लक्ष्य इस आयत के अंदर संभावित समचतुर्भुजों की संख्या गिनना है जो निम्न शर्तों को पूरा करते हैं:
- समचतुर्भुज का क्षेत्रफल 0 से अधिक हो।
- समचतुर्भुज के विकर्ण x और y अक्ष के समानांतर हों।
- समचतुर्भुज के सभी कोनों के निर्देशांक पूर्णांक हों।
उदाहरण सहित समझ
इनपुट - लंबाई=3, चौड़ाई=3
आउटपुट - दिए गए आकार के आयत के अंदर संभावित समचतुर्भुजों की संख्या: 4
व्याख्या - नीचे दिए गए चित्र में ऊंचाई=चौड़ाई=3 का आयत है। साथ ही हम क्षेत्रफल >0 और दोनों अक्षों के समानांतर विकर्ण वाले चार समचतुर्भुज देख सकते हैं (पूर्णांक निर्देशांक भी):
पहला: [(1,0), (2,1), (1,2), (0,1)] दूसरा: [(2,0), (3,1), (2,2), (1,1)] तीसरा: [(2,1), (3,2), (2,3), (1,2)] चौथा: [(1,1), (2,1), (1,2), (0,1)]

इनपुट - लंबाई=2, चौड़ाई=3
आउटपुट - दिए गए आकार के आयत के अंदर संभावित समचतुर्भुजों की संख्या: 2
व्याख्या - नीचे दिए गए चित्र में ऊंचाई=2, चौड़ाई=3 का आयत है। साथ ही हम अंदर दो समचतुर्भुज देख सकते हैं।

प्रोग्राम में उपयोग किया गया दृष्टिकोण
गैर-शून्य क्षेत्रफल और पूर्णांक निर्देशांक वाला पहला समचतुर्भुज दाएँ ऊपरी कोने (2,2) से शुरू होगा। इंडेक्स i=j=2 से i<=लंबाई और j<=चौड़ाई तक ट्रैवर्स करना शुरू करें। पूर्णांक निर्देशांकों के लिए सम लंबाई फिक्स करने के लिए i और j को 2 से बढ़ाएँ। इन विकर्णों वाले समचतुर्भुजों की संख्या (ऊंचाई-i+1)×(चौड़ाई-j+1) होगी।
- लंबाई और चौड़ाई को पूर्णांक के रूप में लें।
- फंक्शन
possible_rhombus(int height, int width)आयत के आयाम लेता है और उन समचतुर्भुजों की संख्या लौटाता है जो आयत के अंदर संभव हैं और सभी उल्लिखित शर्तों का पालन करते हैं। - प्रारंभिक गिनती 0 लें।
- i=2 से i<=लंबाई और j=2 से j<=चौड़ाई तक ट्रैवर्स करें।
- प्रत्येक i,j के लिए
temp_1 = ऊंचाई - i + 1औरtemp_2 = चौड़ाई - j + 1लें। temp_1 * temp_2को काउंट में जोड़ें।- i और j को 2 से बढ़ाएँ (पूर्णांक निर्देशांकों के लिए)।
- अंत में परिणाम के रूप में काउंट लौटाएँ।
उदाहरण
#include <bits/stdc++.h>
using namespace std;
long long possible_rhombus(int height, int width) {
long long count = 0;
for (int i = 2; i <= height; i += 2) {
for (int j = 2; j <= width; j += 2) {
int temp_1 = height - i + 1;
int temp_2 = width - j + 1;
count += temp_1 * temp_2;
}
}
return count;
}
int main() {
int height = 4, width = 4;
cout << "Count of number of rhombi possible inside a rectangle of given size are: " << possible_rhombus(height, width);
return 0;
}
आउटपुट
Count of number of rhombi possible inside a rectangle of given size are: 16