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

C++ में आयत का निर्माण


समस्या विवरण

मान लीजिए हमारे पास एक विशिष्ट आयताकार वेब पेज क्षेत्र है, हमारा काम एक आयताकार वेब पेज डिजाइन करना है, जिसकी लंबाई L और चौड़ाई W निम्नलिखित आवश्यकताओं को पूरा करती है:

  • वेब पेज का क्षेत्रफल दिए गए लक्ष्य क्षेत्रफल के बराबर होना चाहिए।
  • चौड़ाई W लंबाई L से बड़ी नहीं होनी चाहिए, और L >= W।
  • L और W के बीच का अंतर जितना संभव हो उतना छोटा होना चाहिए।

उदाहरण

यदि इनपुट है: 4, तो आउटपुट होगा [2,2], क्योंकि लक्ष्य क्षेत्रफल 4 है, और इसे बनाने के सभी संभावित तरीके [1,4], [2,2], [4,1] हैं। यहां आवश्यकता के अनुसार, [1,4] अवैध है; आवश्यकता 3 के अनुसार, [4,1] [2,2] की तुलना में उचित नहीं है। इसलिए लंबाई L 2 है, और चौड़ाई W 2 है।

हल करने का दृष्टिकोण

इस समस्या को हल करने के लिए निम्नलिखित चरणों का पालन करें:

  • i := area के वर्गमूल से आरंभ करें, जब i > 0, i को 1 से घटाते हुए:
    • यदि area % i == 0, तो:
      • एक सरणी v परिभाषित करें, {area/i, i} डालें
      • v लौटाएं
  • {-1, -1} लौटाएं

C++ कार्यान्वयन

#include <bits/stdc++.h>
using namespace std;

void print_vector(vector<int> v) {
    cout << "[";
    for(int i = 0; i < v.size(); i++) {
        cout << v[i] << ", ";
    }
    cout << "]" << endl;
}

class Solution {
public:
    vector<int> constructRectangle(int area) {
        for (int i = sqrt(area); i > 0; i--) {
            if (area % i == 0) {
                vector<int> v{ area / i, i };
                return v;
            }
        }
        return { -1, -1 };
    }
};

int main() {
    Solution ob;
    print_vector(ob.constructRectangle(4));
    return 0;
}

इनपुट

4

आउटपुट

[2, 2, ]
  1. C++ में दीर्घवृत्त में अंतर्निहित सबसे बड़े वृत्त का क्षेत्रफल ज्ञात करें C++ में दीर्घवृत्त में अंतर्निहित सबसे बड़े वृत्त का क्षेत्रफल ज्ञात करें

    मान लीजिए हमारे पास एक दीर्घवृत्त है, जिसकी प्रमुख और लघु अक्ष की लंबाई 2a और 2b है। हमें इसमें अंतर्निहित सबसे बड़े वृत्त का क्षेत्रफल ढूंढना है। इसलिए यदि a = 5 और b = 3, तो क्षेत्रफल 28.2734 होगा। हम देख सकते हैं कि दीर्घवृत्त में अंतर्निहित अधिकतम क्षेत्रफल वाले वृत्त की त्रिज्या लघु अक्ष b होग

  1. C++ में हेक्सागन में अंकित सबसे बड़े त्रिभुज का क्षेत्रफल C++ में हेक्सागन में अंकित सबसे बड़े त्रिभुज का क्षेत्रफल

    यहां हम नियमित हेक्सागन में अंकित सबसे बड़े त्रिभुज का क्षेत्रफल देखेंगे। हेक्सागन की प्रत्येक भुजा a है, और त्रिभुज की प्रत्येक भुजा b है। इस आरेख से हम देख सकते हैं कि यदि हम हेक्सागन की एक भुजा का उपयोग करके एक त्रिभुज बनाते हैं, तो ये दो त्रिभुज प्रत्येक भुजा को दो भागों में विभाजित कर रहे हैं।

  1. C++ का उपयोग करके एलिप्स का क्षेत्रफल ज्ञात करना C++ का उपयोग करके एलिप्स का क्षेत्रफल ज्ञात करना

    यहां हम देखेंगे कि C++ का उपयोग करके एलिप्स का क्षेत्रफल कैसे प्राप्त किया जाए। एलिप्स के विभिन्न भाग होते हैं। ये नीचे दिए गए हैं।मुख्य बिंदुविवरणसेंटरएलिप्स का केंद्र। यह उन लाइन सेगमेंट्स का भी केंद्र है जो दो फोकी को जोड़ते हैं।मेजर एक्सिसएलिप्स का सबसे लंबा व्यासnmembयह एलिमेंट्स की संख्या है,