हमें भुजा की लंबाई के साथ एक समबाहु त्रिभुज दिया गया है। लक्ष्य त्रिभुज के अंदर मौजूद अलग-अलग आयतों की संख्या गिनना है जैसे कि आयत की क्षैतिज भुजाएं आधार के समानांतर हों। साथ ही आयत के सभी अंत बिंदु डॉट्स को छूते हों जैसा कि दिखाया गया है।

आइए उदाहरणों से समझते हैं
इनपुट - भुजाएं=3
आउटपुट - समबाहु त्रिभुज में अंकित अलग-अलग आयतों की गिनती - 1
व्याख्या - ऊपर दिया गया चित्र आयत दिखाता है।
इनपुट - भुजाएं=10
आउटपुट - समबाहु त्रिभुज में अंकित अलग-अलग आयतों की गिनती - 200
नीचे दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण
ऊपर दिए गए चित्र से यह देखा जा सकता है कि क्षैतिज किनारे वैकल्पिक स्तरों के डॉट्स के बीच मौजूद होंगे।
डॉट्स की संख्या को स्तर 0-1, स्तर 1-2 ... स्तर n-n+1 से गिना जा सकता है।
- पूर्णांक चर के रूप में भुजा को इनपुट करें और आगे की प्रक्रिया के लिए फ़ंक्शन में पास करें
- अस्थायी चर लें: count, temp और check।
- जांचें यदि भुजाएं विषम हैं तो लूप FOR i को sides - 1 से शुरू करें जब तक i 1 से बड़ा हो
- लूप के अंदर, जांचें यदि i & 1 तो temp को (sides - i)/2 सेट करें और check को (i * (i + 1))/2 सेट करें और count को check * temp सेट करें अन्यथा, temp को ((sides - 1) - i)/2 सेट करें और check को (i * (i + 1))/2 सेट करें और count को check * temp सेट करें
- अन्यथा, यदि भुजाएं सम हैं तो i को sides - 1 और i 1 से बड़ा होने तक एक और लूप FOR शुरू करें।
- लूप के अंदर, जांचें यदि i & 1 तो temp को ((sides - 1) - i) / 2 सेट करें और check को (i * (i + 1)) / 2 सेट करें और count को check * temp सेट करें अन्यथा temp को (sides - i) / 2 सेट करें और check को (i * (i + 1)) / 2 सेट करें और count को check * temp सेट करें।
- count वापस करें
- परिणाम प्रिंट करें।
उदाहरण
#include <iostream>
using namespace std;
int rec_inside_equi(int sides){
int count = 0, temp, check;
if(sides%2 != 0){
for(int i = sides - 2; i >= 1; i--){
if (i & 1){
temp = (sides - i) / 2;
check = (i * (i + 1)) / 2;
count += check * temp;
}
else{
temp = ((sides - 1) - i) / 2;
check = (i * (i + 1)) / 2;
count += check * temp;
}
}
}
else{
for(int i = sides - 2; i >= 1; i--){
if (i & 1){
temp = ((sides - 1) - i) / 2;
check = (i * (i + 1)) / 2;
count += check * temp;
}
else{
temp = (sides - i) / 2;
check = (i * (i + 1)) / 2;
count += check * temp;
}
}
}
return count;
}
int main(){
int sides = 4;
cout<<"Count of distinct rectangles inscribed in an equilateral triangle are: "<<rec_inside_equi(sides);
return 0;
}
आउटपुट
Count of distinct rectangles inscribed in an equilateral triangle are: 4