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

C++ में गरीब सूअर समस्या


मान लीजिए 1000 बाल्टियां हैं, उनमें से एक जहरीली है, बाकी पानी से भरी हैं। वे सभी समान दिखती हैं। यदि एक सूअर जहर पीता है तो वह 15 मिनट के भीतर मर जाएगा। एक घंटे के भीतर जहरीली बाल्टी का पता लगाने के लिए हमें न्यूनतम कितने सूअरों की आवश्यकता होगी?

अब सामान्य मामले पर विचार करें और इसके लिए एक एल्गोरिदम तैयार करें। तो, सामान्य मामला यह है कि यदि n अलग-अलग बाल्टियां हैं और एक सूअर जहर पीने के m मिनट के भीतर मर जाता है, तो p मिनट के भीतर जहरीली बाल्टी का पता लगाने के लिए कितने सूअरों की आवश्यकता होगी? ठीक एक बाल्टी में जहर है।

जब n = 1000, m = 15 और p = 60, तो आउटपुट 5 होगा।

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

  • ret := 0
  • जब (minutesToTest / minutesToDie + 1)^ret < buckets, करें -
    • (ret को 1 से बढ़ाएं)
  • ret लौटाएं

बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें -

उदाहरण

#include <bits/stdc++.h> using namespace std; class Solution { public:    int poorPigs(int buckets, int minutesToDie, int minutesToTest) {       int ret = 0;       while(pow((minutesToTest / minutesToDie + 1), ret) < buckets) ret++;       return ret;    } }; main(){    Solution ob;    cout << (ob.poorPigs(1000,15,60)); }

इनपुट

1000 15 60

आउटपुट

5

  1. C++ में जंप गेम V C++ में जंप गेम V

    मान लीजिए हमारे पास arr नामक पूर्णांकों की एक सरणी और एक पूर्णांक d है। एक चरण में हम इंडेक्स i से कूद सकते हैं: i + x जहां: i + x < n और x की सीमा 1 से d है। = 0 और x की सीमा 1 से d है। arr[k] हो। हम सरणी के किसी भी इंडेक्स से कूदना शुरू कर सकते हैं। हमें अधिकतम इंडेक्स की संख्या ज्ञात करनी है ज

  1. - C++ में K डिजिट्स हटाना

    मान लीजिए हमारे पास एक नॉन-नेगेटिव इंटीजर num है जिसे स्ट्रिंग के रूप में दर्शाया गया है, हमें नंबर से k डिजिट्स हटाने हैं ताकि नया नंबर सबसे छोटा संभव हो। उदाहरण के लिए, अगर इनपुट 1432219 है और k = 3, तो रिजल्ट 1219 होगा। इसे हल करने के लिए, हम इन स्टेप्स को फॉलो करेंगे: एक स्टैक st डिफाइन करें,

  1. - C++ में चार डिवाइजर्स

    मान लीजिए हमारे पास एक इंटीजर ऐरे nums है, हमें उस ऐरे में उन इंटीजर्स के डिवाइजर्स का योग ढूंढना है जिनके ठीक चार डिवाइजर्स हैं। अगर ऐरे में ऐसा कोई इंटीजर नहीं है, तो 0 लौटाएं। उदाहरण के लिए, अगर इनपुट [21, 4, 7] है, तो आउटपुट 32 होगा, क्योंकि 21 के चार डिवाइजर्स हैं 1, 3, 7, 21, 4 के तीन डिवाइजर