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

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

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

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

इनपुट: ए =4 बी =124

आउटपुट: 6

स्पष्टीकरण:

a^b का मान 4.523128486 * 10 74 . है

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

समस्या का समाधान इस तथ्य पर आधारित है कि किसी संख्या के सभी घातांक 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. सी ++ में एक क्रमबद्ध सरणी में के निकटतम संख्याएं खोजें

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

  1. सी ++ प्रोग्राम संख्याओं की एक सरणी के उत्पाद में पहला अंक खोजने के लिए

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

  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