हमें एक समद्विबाहु त्रिभुज दिया गया है। समद्विबाहु त्रिभुज वह होता है जिसकी दो भुजाएँ समान लंबाई की होती हैं। समकोण त्रिभुज वह होता है जिसकी ऊँचाई (अंजीर में ag) और आधार (अंजीर में dg) एक दूसरे के लंबवत होते हैं। लक्ष्य 2 वर्ग इकाइयों के इस दाएं समद्विबाहु त्रिभुज में फिट होने वाले वर्गों की अधिकतम संख्या ज्ञात करना है। पक्षों के आधार या ऊंचाई (दोनों बराबर) को इनपुट के रूप में लिया जाता है। वर्गों की संख्या आउटपुट है।
समस्या को समझने के लिए नीचे दिए गए चित्र को देखें
दिए गए त्रिभुज की ऊँचाई ag और आधार gd में प्रत्येक भुजा 2 के 3 वर्ग हैं। कोने के छोर से 'a' और 'd', त्रिभुज aib और cde कभी भी किसी वर्ग में योगदान नहीं करेंगे। तो सबसे पहले हमें इन त्रिभुजों के लिए हमेशा अतिरिक्त 2 इकाइयों की आवश्यकता होगी। नहीं, हमें संख्या गिनने के लिए शेष आधार gd (या ऊँचाई ag) को 2 से विभाजित करना होगा। चौकों की। ऊंचाई (एजी) के मामले में भी ऐसा ही होगा।
while(base > 2 ) squares+=(base-2)/2 base = base-2. Use formula of Ap = b*(b+1)/2….where new b=b-2
आइए उदाहरणों से समझते हैं।
इनपुट - आधार:12
आउटपुट - वर्गों की संख्या :15
स्पष्टीकरण
base 12>2, squares 10/2=5, new base 12-2=10 base 10>2, squares 8/2=4, new base 10-2=8 base 8>2, squares 6/2=3, new base 8-2=6 base 6>2, squares 4/2=2, new base 6-2=4 base 4>2, squares 2/2=1, new base 4-2=2 base 2>2 X Total squares=5+4+3+2+1=15
इनपुट - .5
आउटपुट - वर्गों की संख्या - 1
स्पष्टीकरण
base 5>2, squares 3/2=1, new base 5-2=3 base 3>2, squares 1/2=0, new base 3-2=1 base 1>2 X Total squares=1
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
-
पूर्णांक चर आधार का उपयोग त्रिभुज के आधार को संग्रहीत करने के लिए किया जाता है..
-
फ़ंक्शन numofSquares(int b) का उपयोग उन वर्गों की संख्या की गणना करने के लिए किया जाता है जो आधार b वाले त्रिभुज को समायोजित कर सकते हैं।
-
सबसे पहले b=b-2 −कोने के सिरे से अतिरिक्त जगह
-
सूत्र के अनुसार, b=floor(b/2), इस नए b में b*(b+1)/2 भुजा 2 के वर्ग हो सकते हैं।
-
गणना को वर्गों की संख्या के रूप में लौटाएं।
उदाहरण
#include <stdio.h> #include <math.h> int numofSquares(int b){ // removing the extra part we would // always need b = (b - 2); // Since each square has base of // length of 2 b = floor(b / 2); return b * (b + 1)/2; } int main(){ int base = 8; printf("Maximum no. of square that can be accommodated : %d",numofSquares(base)); return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
Maximum no. of square that can be accommodated : 6