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

C++ में बड़ी संख्याओं के लिए a^b का अंतिम अंक ढूंढें


इस समस्या में, हमें दो संख्याएं a और b दी गई हैं। हमारा कार्य बड़ी संख्याओं के लिए a^b का अंतिम अंक ढूंढना है।

समस्या को समझने के लिए एक उदाहरण लेते हैं,

इनपुट: a = 4 b = 124

आउटपुट: 6

व्याख्या:

a^b का मान 4.523128486 * 1074 है

समाधान दृष्टिकोण

समस्या का समाधान इस तथ्य पर आधारित है कि किसी संख्या के सभी घातांक 4 घातांक मानों के बाद दोहराए जाते हैं।

इसलिए, हम b%4 का मान ढूंढेंगे। साथ ही, किसी भी आधार मान के लिए, उसकी घात का अंतिम अंक आधार मान के अंतिम अंक से तय होता है।

इसलिए, परिणामी मान की गणना इस प्रकार की जाएगी

a का अंतिम मान ^ (b%4)

हमारे समाधान की कार्यप्रणाली को दर्शाने वाला प्रोग्राम,

उदाहरण

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

int calcModulus(char b[], int a) {
    int mod = 0;
    for (int i = 0; i < strlen(b); i++)
        mod = (mod * 10 + b[i] - '0') % a;
    return mod;
}

int calcLastDigitInExpo(char a[], char b[]) {
    int len_a = strlen(a), len_b = strlen(b);
    if (len_a == 1 && len_b == 1 && b[0] == '0' && a[0] == '0')
        return 1;
    if (len_b == 1 && b[0] == '0')
        return 1;
    if (len_a == 1 && a[0] == '0')
        return 0;
    int exponent = (calcModulus(b, 4) == 0) ? 4 : calcModulus(b, 4);
    int base = a[len_a - 1] - '0';
    int result = pow(base, exponent);
    return result % 10;
}

int main() {
    char a[] = "559", b[] = "4532";
    cout<<"The last digit in of the value is "<<calcLastDigitInExpo(a, b);
    return 0;
}

आउटपुट

The last digit in of the value is 1

  1. - C++ प्रोग्राम: अनसॉर्टेड सरणी में k निकटतम संख्याएं ज्ञात करना

    मान लें हमारे पास कुछ तत्वों के साथ एक सरणी A है। सरणी अनसॉर्टेड है। हमारे पास दो अन्य मान X और k हैं। हमारा कार्य सरणी A से X की k निकटतम तत्वों की संख्या ज्ञात करना है। यदि तत्व X सरणी में मौजूद है, तो यह आउटपुट में नहीं दिखाया जाएगा। यदि A = [48, 50, 55, 30, 39, 35, 42, 45, 12, 16, 53, 22, 56] और

  1. - C++ प्रोग्राम: संख्याओं के एरे के गुणनफल का पहला अंक ज्ञात करना

    इस लेख में, हम एक प्रोग्राम पर चर्चा करेंगे जो दिए गए एरे के तत्वों के गुणनफल का पहला अंक ज्ञात करता है। उदाहरण के लिए, मान लीजिए हमें एक एरे दिया गया है। arr = {12, 5, 16} तो इन तत्वों का गुणनफल 12*5*16 = 960 होगा। इसलिए, इस मामले में परिणाम यानी गुणनफल का पहला अंक 9 होगा। उदाहरण #include <bits

  1. - C++ प्रोग्राम बड़ी संख्याओं का फैक्टोरियल खोजने के लिए

    फैक्टोरियल खोजने का एक उदाहरण निम्नलिखिक है। उदाहरण #include <iostream> using namespace std; int fact(unsigned long long int n) {    if (n == 0 || n == 1)    return 1;    else    return n * fact(n - 1); } int main() {    unsigned long long int