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

आयतों की संख्या इस प्रकार गिनें कि भुजाओं का अनुपात C++ की सीमा [a,b] में हो।

पहले और आखिरी में आयतों की भुजाएँ और श्रेणी चर दिए गए हैं। लक्ष्य उन आयतों की संख्या ज्ञात करना है जिनकी भुजा की लंबाई/चौड़ाई का अनुपात [पहले, अंतिम] सीमा में है।

उदाहरण के लिए

इनपुट

rec[] = { { 200, 210 }, { 100, 50 }, { 300, 190}, {180, 200}, {300, 200}} and first = 1.0, last = 1.6

आउटपुट

Count of number of rectangles such that ratio of sides lies in the range [a,b] are: 4

स्पष्टीकरण

The sides that have ratio in the range [ 1.0,1.6 ] are :
{200,210}, {300,190}, {180,200}, {300,200}

इनपुट

rec[] = { { 10,20 }, { 30, 10 }, { 100, 500}, {900, 300}, {450, 90}} and
first = 3.0, last = 4.0

आउटपुट

Count of number of rectangles such that ratio of sides lies in the range [a,b]
are: 2

स्पष्टीकरण

The sides that have ratio in the range [ 3.0,4.0 ] are :
{30,10}, {900,300}

नीचे दिए गए कार्यक्रम में उपयोग किया गया दृष्टिकोण इस प्रकार है -

इस दृष्टिकोण में हम जोड़ी की एक सरणी के रूप में पक्ष लेंगे। प्रत्येक जोड़ी के लिए जांचें कि क्या बड़े मूल्य/छोटे मूल्य का परिणाम [प्रथम, अंतिम] श्रेणी में है। अगर सही है तो ऐसे जोड़ियों की संख्या बढ़ाएँ।

  • एक सरणी rec[] प्रकार की जोड़ी लें

  • श्रेणी निर्धारित करने के लिए पहले और अंतिम दो चर लें।

  • फंक्शन रेशियो_साइड्स (जोड़ी rec[], int Total, double first, double last) आयतों की भुजाएँ लेता है और आयतों की संख्या की गणना इस तरह लौटाता है कि पक्षों का अनुपात [a,b] की सीमा में हो।

  • प्रारंभिक गणना 0 के रूप में लें।

  • लूप के लिए i=0 से i

  • जोड़ी rec[i] में maxi =max(rec[i].first, rec[i].second) के रूप में बड़ा मान निकालें।

  • जोड़ी rec[i] में छोटा मान निकालें जैसे mini =min(rec[i].first, rec[i].second).

  • औसत =मैक्सी/मिनी की गणना करें।

  • यदि औसत का मान श्रेणी में है [ प्रथम, अंतिम ], तो वृद्धि गणना।

  • लूप के अंत में परिणाम के रूप में वापसी की गणना करें ..

उदाहरण

#include <bits/stdc++.h>
using namespace std;
int ratio_sides(pair<int, int> rec[], int total, double first, double last){
   int count = 0;
   for (int i = 0; i < total; i++){
      double maxi = max(rec[i].first, rec[i].second);
      double mini = min(rec[i].first, rec[i].second);
      double average = maxi/mini;
      if (average >= first){
         if(average <= last){
            count++;
         }
      }
   }
   return count;
}
int main(){
   pair<int, int> rec[] = { { 200, 210 }, { 100, 50 }, { 300, 190}, {180, 200}, {300, 200}};
   int total = 5;
   double first = 1.0, last = 1.6;
   cout<<"Count of number of rectangles such that ratio of sides lies in the range [a,b] are: "<<ratio_sides(rec, total, first, last);
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -

Count the number of rectangles such that ratio of sides lies in the range [a,b] are: 4

  1. सबसे छोटी संख्या K इस प्रकार ज्ञात कीजिए कि C++ में K% p =0 और q% K =0 हो

    मान लीजिए हमारे पास दो पूर्णांक P और Q हैं। हमें सबसे छोटी संख्या K ज्ञात करनी है, जैसे कि K mod P =0 और Q mod K =0। अन्यथा प्रिंट -1। तो अगर पी और क्यू 2 और 8 हैं, तो के 2 होगा। 2 मोड 2 =0, और 8 मोड 2 =0 के रूप में। K को संभव बनाने के लिए, Q को P से विभाज्य होना चाहिए। इसलिए यदि P mod Q =0 है तो P

  1. सबसे छोटी संख्या X ज्ञात कीजिए कि X! C++ में कम से कम Y अनुगामी शून्य होते हैं

    हमें एक संख्या Y लेनी है, हमें सबसे छोटी संख्या X मिलेगी, जैसे कि X! प्रशिक्षण शून्य की कम से कम Y संख्या शामिल है। उदाहरण के लिए, यदि Y =2, तो X का मान =10. जैसा कि X! =3228800। इसमें Y संख्या शून्य है। हम इसे बाइनरी सर्च का उपयोग करके हल कर सकते हैं। N में अनुगामी शून्यों की संख्या! N! में गुणनखं

  1. C++ में संख्या को विभाजित करने वाली संख्या में अंकों की संख्या ज्ञात कीजिए

    मान लीजिए एक नंबर दिया गया है। हमें उस संख्या के अंकों की संख्या गिननी है जो संख्या को समान रूप से विभाजित करती है। मान लीजिए कि संख्या 1012 है, परिणाम 3 है। तीन अंक 1, 1 और 2 हैं जो समान रूप से 1012 को विभाजित करते हैं। इसे हल करने के लिए, हम मॉड्यूलस ऑपरेशन का उपयोग करके संख्या के प्रत्येक अंक को