इनपुट के रूप में आयत के एक क्षेत्र को देखते हुए। लक्ष्य एक आयत की भुजाओं को इस प्रकार खोजना है कि लंबाई और चौड़ाई के बीच का अंतर न्यूनतम हो।
आयत का क्षेत्रफल =लंबाई * चौड़ाई।
उदाहरण
इनपुट - क्षेत्रफल =100
आउटपुट −आयताकार की भुजा न्यूनतम अंतर के साथ:
लंबाई =10, चौड़ाई =10
स्पष्टीकरण − क्षेत्रफल वाली भुजाएं =100.
2 - 50, 4 - 25, 5 - 20, 10 - 10। न्यूनतम अंतर वाली भुजाएँ 10-10 हैं जिनमें अंतर =0 है। जैसा कि हम जानते हैं कि वर्ग सभी पक्षों पर समान लंबाई वाला एक आयत है।
इनपुट - क्षेत्रफल =254
आउटपुट - आयत की भुजा न्यूनतम अंतर के साथ:
लंबाई =127, चौड़ाई =2
स्पष्टीकरण − 254 क्षेत्रफल वाला आयत बनाने के लिए न्यूनतम अंतर वाली केवल संभावित भुजाएं 127 और 2 हैं।
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
इसमें हम क्षेत्र का वर्गमूल मान प्राप्त करेंगे और न्यूनतम अंतर और क्षेत्र =इनपुट क्षेत्र वाले मान खोजने के लिए वहां से 1 तक जाएंगे।
-
पूर्णांक चर क्षेत्र को इनपुट के रूप में लें।
-
फंक्शन रेक्टेंगलसाइड्स (इंट एरिया 1) एरिया 1 लेता है और लंबाई और चौड़ाई के बीच न्यूनतम संभव अंतर के साथ रेक्टेंगल के किनारों की लंबाई को प्रिंट करता है।
-
पूर्णांक लंबाई, चौड़ाई, tmp1 लें।
-
tmp1=ceil(sqrt(area1)) सेट करें
-
लूप के लिए उपयोग करके ट्रैवर्स (int i =tmp1; i> 0; i--)।
-
अगर (क्षेत्रफल 1% i ==0) तो लंबाई =क्षेत्र/i और चौड़ाई =i सेट करें।
-
ब्रेक स्टेटमेंट का उपयोग करके पुनरावृत्ति रोकें।
-
पक्षों की लंबाई और चौड़ाई प्रिंट करें।
उदाहरण
#include <bits/stdc++.h> using namespace std; void rectangleSides(int area1){ int length, breadth; int tmp1 = ceil(sqrt(area1)); for (int i = tmp1; i > 0; i--) { if (area1 % i == 0) { length = ceil(area1 / i); breadth = i; break; } } cout<<"Sides of Rectangle with minimum difference :"<<endl; cout << "Length = " << length << ", Breadth = " << breadth << endl; } int main(){ int Area = 140; rectangleSides(Area); return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा
Sides of Rectangle with minimum difference : Length = 14, Breadth = 10