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

न्यूनतम मान खोजें जिसे सभी ऐरे तत्वों को असाइन करने से ऐरे का गुणनफल अधिक हो जाए C++ में

मान लीजिए हमारे पास n तत्वों का एक ऐरे है। दी गई ऐरे के सभी तत्वों को कुछ न्यूनतम मान x पर अपडेट करें, जैसे कि arr[i] = x। जैसे कि नए ऐरे में सभी तत्वों का गुणनफल प्रारंभिक ऐरे के सभी तत्वों के गुणनफल से सख्ती से अधिक हो, जहां i <= arr[i] <= 10^10, और 1 <= n <= 10^5। तो यदि ऐरे [4, 2, 1, 10, 6] जैसा है। तो 4 सबसे छोटा तत्व है। 4 * 4 * 4 * 4 * 4 > 4 * 2 * 1 * 10 * 6

हम जानते हैं कि n तत्वों का गुणनफल P है। यदि हमें P का nवां मूल खोजना है, तो n तत्वों के लॉग के योग से n को विभाजित करके nवें मूल को खोजें और फिर एंटीलॉग की सीलिंग परिणाम होगी।

res = ceil(antilog(log(x) / 10))

या res = ceil(10 ^ (log(x) / 10))

उदाहरण

#include <iostream>
#include <cmath>
#define EPS 1e-15
using namespace std;

long long findMinValue(long long arr[], long long n) {
    long double sum = 0;
    for (int i = 0; i < n; i++)
        sum += (long double)log10(arr[i]) + EPS;
    long double xl = (long double)(sum / n + EPS);
    long double res = pow((long double)10.0, (long double)xl) + EPS;
    return (long long)ceil(res + EPS);
}

int main() {
    long long arr[] = {4, 2, 1, 10, 6};
    long long n = sizeof(arr) / sizeof(arr[0]);
    cout << "Min value is: " << findMinValue(arr, n);
}

आउटपुट

Min value is: 4

  1. - C++ का उपयोग करके सरणी में ऐसा तत्व खोजें जिससे सभी तत्व विभाज्य हों

    मान लीजिए हमारे पास कुछ तत्वों के साथ एक सरणी A है। हमें A से एक ऐसा तत्व ढूंढना है जिससे सभी तत्व इससे विभाज्य हों। मान लीजिए A = [15, 21, 69, 33, 3, 72, 81] है, तो तत्व 3 होगा, क्योंकि सभी संख्याएं 3 से विभाज्य हैं। इस समस्या को हल करने के लिए, हम A में सबसे छोटी संख्या लेंगे, फिर जांचेंगे कि क्य

  1. - C++ में सरणी में उन सभी जोड़े (a, b) को खोजें जैसे कि a % b = k

    मान लीजिए हमारे पास एक सरणी A है, उस सरणी से हमें सभी जोड़े (a, b) प्राप्त करने हैं जैसे कि a%b = k। मान लीजिए सरणी A = [2, 3, 4, 5, 7], और k = 3, तो जोड़े हैं (7, 4), (3, 4), (3, 5), (3, 7)। इसे हल करने के लिए, हम सूची को पार करेंगे और जांचेंगे कि दी गई शर्त पूरी हो रही है या नहीं। उदाहरण #include

  1. - C++ में ऐरे के सभी एलिमेंट्स को समान बनाने के लिए न्यूनतम डिलीट ऑपरेशन्स

    समस्या कथनn एलिमेंट्स का एक ऐरे दिया गया है जैसे कि एलिमेंट्स रिपीट हो सकते हैं। हम ऐरे से किसी भी संख्या में एलिमेंट्स डिलीट कर सकते हैं। कार्य ऐरे को समान बनाने के लिए डिलीट किए जाने वाले एलिमेंट्स की न्यूनतम संख्या ढूंढना है।arr[] = {10, 8, 10, 7, 10, -1, -4, 12}सभी ऐरे एलिमेंट्स को समान बनाने के