Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में लंबाई और चौड़ाई के बीच न्यूनतम संभव अंतर वाले आयत का पता लगाएं


एक आयत का क्षेत्रफल दिया गया है। लक्ष्य है उस आयत की भुजाएँ ढूंढना जिनका क्षेत्रफल दिए गए क्षेत्रफल के बराबर हो और जिनकी लंबाई और चौड़ाई के बीच का अंतर न्यूनतम हो।

आयत का क्षेत्रफल = लंबाई × चौड़ाई।

उदाहरण

इनपुट - क्षेत्रफल = 100

आउटपुट - न्यूनतम अंतर वाले आयत की भुजाएँ:

लंबाई = 10, चौड़ाई = 10

व्याख्या - क्षेत्रफल 100 वाली भुजाएँ: 2-50, 4-25, 5-20, 10-10। न्यूनतम अंतर 10-10 का है जिसका अंतर 0 है। जैसा कि हम जानते हैं, वर्ग एक आयत है जिसकी सभी भुजाएँ समान होती हैं।

इनपुट - क्षेत्रफल = 254

आउटपुट - न्यूनतम अंतर वाली भुजाएँ:

लंबाई = 127, चौड़ाई = 2

व्याख्या - 254 क्षेत्रफल वाले आयत के लिए केवल संभावित भुजाएँ 127 और 2 हैं जिनका अंतर न्यूनतम है।

उपयोग किया गया दृष्टिकोण

इसमें हम क्षेत्रफल का वर्गमूल निकालते हैं और वहां से 1 तक घटते हुए उन मानों को ढूंढते हैं जिनका अंतर न्यूनतम हो और क्षेत्रफल दिए गए क्षेत्रफल के बराबर हो।

  • पूर्णांक चर Area को इनपुट के रूप में लें।

  • फ़ंक्शन rectangleSides(int area1) area1 लेता है और न्यूनतम संभव अंतर वाली आयत की भुजाओं की लंबाई प्रिंट करता है।

  • पूर्णांक length, breadth, tmp1 लें।

  • tmp1 = ceil(sqrt(area1)) सेट करें।

  • for लूप का उपयोग करके (int i = tmp1; i > 0; i--) ट्रैवर्स करें।

  • यदि (area1 % i == 0) तो length = area1/i और breadth = i सेट करें।

  • break स्टेटमेंट का उपयोग करके पुनरावृत्ति रोकें।

  • भुजाएँ length और breadth प्रिंट करें।

उदाहरण

#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

  1. - C++ में cin और cout स्ट्रीम्स में क्या अंतर है?

    cin इनपुट स्ट्रीम का एक ऑब्जेक्ट है और इसका उपयोग फाइल्स, कंसोल आदि जैसे इनपुट स्ट्रीम्स से इनपुट लेने के लिए किया जाता है। cout आउटपुट स्ट्रीम का एक ऑब्जेक्ट है जिसका उपयोग आउटपुट दिखाने के लिए किया जाता है। मूल रूप से, cin एक इनपुट स्टेटमेंट है जबकि cout एक आउटपुट स्टेटमेंट है। वे अलग-अलग ऑपरेटर्

  1. - C++ में ++i और i++ में क्या अंतर है?

    ++ के सफ़िक्स और प्रीफिक्स संस्करणों के बीच एक बड़ा अंतर है। प्रीफिक्स संस्करण में (यानी, ++i), i का मान बढ़ाया जाता है, और एक्सप्रेशन का मान i का नया मान होता है। तो मूल रूप से यह पहले इन्क्रीमेंट करता है फिर एक्सप्रेशन को मान असाइन करता है। पोस्टफिक्स संस्करण में (यानी, i++), i का मान बढ़ाया जात

  1. - C++ में डॉट (.) ऑपरेटर और -> में क्या अंतर है?

    डॉट और एरो ऑपरेटर दोनों का उपयोग C++ में क्लास के मेंबर्स को एक्सेस करने के लिए किया जाता है। वे केवल अलग-अलग परिदृश्यों में उपयोग किए जाते हैं। C++ में, क्लास, स्ट्रक्चर, या यूनियन के रूप में घोषित प्रकारों को क्लास टाइप का माना जाता है। इसलिए निम्नलिखित उन सभी तीनों को संदर्भित करता है। a.b केवल