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

C++ में दिए गए प्रजनन दर के लिए n सेकंड के बाद a, b और c की संख्या

इनपुट के रूप में तीन नंबर 'ए', 'बी' और 'सी' दिए गए हैं। लक्ष्य n सेकंड के बाद 'a', 'b' और 'c' की गिनती/मान ज्ञात करना है ताकि प्रजनन की दर इस प्रकार हो:-

  • हर a हर 2 सेकंड के बाद b में बदल जाता है
  • हर b हर 5 सेकंड के बाद c में बदल जाता है
  • हर c हर 12 सेकंड के बाद 2 a में बदल जाता है।

आइए उदाहरणों से समझते हैं।

उदाहरण के लिए

इनपुट - n_seconds =62 a =1 b =1 c =1

आउटपुट - दी गई प्रजनन दर के लिए n सेकंड के बाद की गणना है:0

दी गई प्रजनन दर के लिए n सेकंड के बाद b की संख्या है:33

दी गई प्रजनन दर के लिए n सेकंड के बाद c की संख्या है:1

स्पष्टीकरण - 60 सेकंड के बाद, a, 32, b =0, c =0 होगा।

2 और सेकंड के बाद, सभी b, c, c=1 हो जाएंगे। सभी a बन जाते हैं b, b=33.

इनपुट - n_seconds =20 a =1 b =1 c =1

आउटपुट - दी गई प्रजनन दर के लिए n सेकंड के बाद की गणना है:0

दी गई प्रजनन दर के लिए n सेकंड के बाद b की संख्या है:0

दी गई प्रजनन दर के लिए n सेकंड के बाद c की संख्या है:6

स्पष्टीकरण

1 सेकंड :- a=1, b=1, c=1

2 सेकंड :- a=0, b=2(1+1) , c=1 → a से b 2 सेकंड के बाद

4 सेकंड:- a=0, b=2 , c=1 → a से b 2 सेकंड के बाद

5 सेकंड:- a=0, b=0 , c=3 (1+2) → b से c 5 सेकंड के बाद

6 सेकंड:- a=0, b=0 , c=3 → a से b 2 सेकंड के बाद

8 सेकंड :- a=0, b=0 , c=3 → a से b 2 सेकंड के बाद

10 सेकंड :- a=0, b=0 , c=3 → b से c 5 सेकंड के बाद

12 सेकंड:- a=6 (0+2*3), b=0 , c=0 → c से 2a 12 सेकंड के बाद

14 सेकंड :- a=0, b=6(0+6) , c=0 → a से b 2 सेकंड के बाद

15 सेकंड :- a=0, b=0 , c=6(0+6) → b से c 5 सेकंड के बाद

16 सेकंड :- a=0, b=0 , c=6 → a से b 2 सेकंड के बाद

18 सेकंड :- a=0, b=0 , c=6 → a से b 2 सेकंड के बाद

20 सेकंड:- a=0, b=0 , c=6 → b से c 5 सेकंड के बाद

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

सेकंड का एलसीएम 60 (2, 5, 12) होगा। अतः प्रत्येक 60 सेकंड के बाद a, b और c में परिवर्तन होंगे:

60 सेकंड → a=32, b=0, c=0

120 सेकंड → a=32*32 , b=0, c=0

180 सेकंड → a=32*32*32 , b=0, c=0.

60 के गुणकों के रूप में सेकंड के लिए ऊपर के रूप में ए की गणना करें। गैर-गुणकों के लिए, निकटतम एकाधिक अस्थायी की गणना करें और फिर अस्थायी + 1 से इनपुट सेकंड तक जाएं और मॉड 2, 5 या 12 का उपयोग करके गणना करें।

  • इनपुट के रूप में नंबर ए, बी और सी लें।
  • n_seconds समय के रूप में सेकंड में लें।
  • फ़ंक्शन प्रजनन_रेट(int n_seconds, int a, int b, int c) सभी पैरामीटर लेता है और दिए गए प्रजनन दर के लिए n सेकंड के बाद a, b &c की गिनती प्रिंट करता है।
  • तापमान =n_seconds / 60 को n_seonds से नीचे 60 के गुणज के रूप में लें।
  • सूत्र में दिए गए अनुसार a =(int) pow(32, temp) की गणना करें। (एक अस्थायी )
  • अब 60 से कम या n_seconds के बराबर के निकटतम गुणक के लिए अस्थायी =60 * अस्थायी अद्यतन करें।
  • अब for लूप का उपयोग करके i=temp+1 से i=n_seconds पर जाएं।
  • यदि संख्या i 2 का गुणज है तो a और a को 0 से जोड़कर अपडेट करें।
  • यदि संख्या i 5 का गुणज है तो b और b को 0 से जोड़कर c को अपडेट करें।
  • यदि संख्या i 12 का गुणज है तो a को 2c और c को 0 से जोड़कर अपडेट करें।
  • लूप के अंत में, a, b और c के अंतिम मान प्रिंट करें।

उदाहरण

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

void reproduction_rate(int n_seconds, int a, int b, int c) {
   int temp = n_seconds / 60;
   a = (int) pow(32, temp);
   temp = 60 * temp;

   for (int i = temp + 1; i <= n_seconds; i++) {
      if (i % 2 == 0) {
         b = b + a;
         a = 0;
      }
      if (i % 5 == 0) {
         c = c + b;
         b = 0;
      }
      if (i % 12 == 0) {
         a = a + (2 * c);
         c = 0;
      }
   }
   cout << "Count of a after n seconds for given reproduction rate is: " << a << "\n";
   cout << "Count of b after n seconds for given reproduction rate is: " << b << "\n";
   cout << "Count of c after n seconds for given reproduction rate is: " << c;
}
int main() {
   int n_seconds = 72;
   int a = 2;
   int b = 1;
   int c = 1;
   reproduction_rate(n_seconds, a, b, c);
   return 0;
}

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

आउटपुट

Count of a after n seconds for given reproduction rate is: 68
Count of b after n seconds for given reproduction rate is: 0

Count of c after n seconds for given reproduction rate is: 0


  1. C++ में N कटने के बाद वृत्त के टुकड़ों को गिनें

    हमें एक पूर्णांक N दिया गया है जो 2D-वृत्त पर लगाए गए कटों की संख्या को दर्शाता है। प्रत्येक वृत्त वृत्त को दो भागों में विभाजित करता है। लक्ष्य N कट के बाद वृत्त के टुकड़ों को खोजना है। टुकड़ों की संख्या =2 * नहीं। कटौती की आइए उदाहरणों से समझते हैं। इनपुट -एन=1 आउटपुट - सर्कल के टुकड़े:2 स्पष

  1. C++ में T सेकंड के बाद मेंढक की स्थिति

    मान लीजिए कि हमारे पास एक अप्रत्यक्ष वृक्ष है जिसमें n शीर्ष हैं। शीर्षों की संख्या 1 से n तक है। अब एक मेंढक शीर्ष 1 से कूदना शुरू करता है। मेंढक एक सेकंड में अपने वर्तमान शीर्ष से दूसरे गैर-विजिट किए गए शीर्ष पर कूद सकता है यदि वे आसन्न हैं। मेंढक वापस देखे गए शीर्ष पर नहीं जा सकता। यदि मेंढक कई श

  1. C++ में दिए गए आंदोलनों के बाद रोबोट की स्थिति

    इस समस्या में, हमें एक ऐसा रोबोट दिया जाता है जो चारों दिशाओं में चलता है लेकिन केवल एक ही चलता है। दिशाएँ ऊपर (U), नीचे (D), बाएँ (L), दाएँ (R) हैं। और हमें एक स्ट्रिंग दी जाती है जिसमें संख्या की दिशाओं के आद्याक्षर होते हैं। हमारा काम रोबोट की अंतिम स्थिति को प्रिंट करना है, यह देखते हुए कि रोबोट