इंटेगर का उलटा


कठिनाई स्तर आसान
में अक्सर पूछा MakeMyTrip MAQ
मठ तार

समस्या का विवरण

"रिवर्स इंटेगर" समस्या बताती है कि आपको एक पूर्णांक चर n दिया जाता है जिसमें संख्या उलट होती है। अपने अंकों को उलटने के लिए एक कार्यक्रम लिखें।

उलट ए पूर्णांक कुछ भी अलग नहीं है एक स्ट्रिंग उलट। हम आसानी से एक पूर्णांक को एक स्ट्रिंग में बदल सकते हैं। और फिर एक स्ट्रिंग को उल्टा करने के लिए विभिन्न तरीकों का उपयोग करें। लेकिन ऐसा करने के बजाय हमारे कार्य को पूरा करने के लिए एक और तरीका है। क्योंकि स्ट्रिंग के लिए पूर्णांक का पहला रूपांतरण ओवरहेड है। इसलिए, उन समाधानों को देखने के बजाय। हम नई पद्धति को देखेंगे।

उदाहरण

इंटेगर का उलटा

13567
76531

स्पष्टीकरण: दिए गए संख्या के प्रत्येक अंक को उलटने पर। वह अंतिम अंक को संख्या के पहले अंक से बदल रहा है और पहले अंक को अंतिम अंक से बदल रहा है। हम एक समान अंदाज में संख्या के प्रत्येक अंक को संसाधित करते हैं। हमें परिणाम के रूप में 76531 मिलते हैं।

578
875

स्पष्टीकरण: औपचारिक रूप से हम क्या करते हैं यदि हम प्रत्येक अंक को एक अंक संख्या देते हैं। हमने 0 आधारित अनुक्रमण पर विचार किया है और हम संख्या को n कह रहे हैं। फिर हम n [0] को n [2] और n [2] को n [0] पर स्वैप करते हैं। फिर प्रक्रिया मध्य तक दोहराती है। यह इनपुट को रिवर्स करने के तरीकों में से एक है।

Iterative विधि

पूर्णांक को पुनरावृत्त करने के लिए एल्गोरिदम

1. Initialize an integer n containing the number to be reversed.
2. Create a function to reverse a number which accepts an integer variable as it's a parameter.
3. Initialize an integer variable rev as 0 to store the reverse of the given number.
4. After that, traverse through the given number. While the given number is greater than 0,  multiply the integer rev with 10 and add it to the last digit of the given number and store it in the variable rev itself. Update the given number as the number itself divide by 10 to discard the last digit.
5. Finally, return the variable containing the reversed number and print it.

कोड

पूर्णांक रिवर्स करने के लिए Iterative C ++ प्रोग्राम

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

int revDigits(int n){ 
    int rev = 0; 
    while(n > 0){ 
        rev = rev*10 + n%10; 
        n = n/10; 
    }
    return rev; 
} 
int main(){ 
    int n = 4562; 
    cout<<revDigits(n);
    return 0; 
} 
2654

पूर्णांक रिवर्स करने के लिए Iterative जावा प्रोग्राम

class reverse{ 
    static int revDigits(int n){ 
        int rev = 0; 
        while(n > 0){ 
            rev = rev*10 + n%10; 
            n = n/10; 
        } 
        return rev; 
    } 
    public static void main (String[] args){ 
        int n = 4562; 
        System.out.println(revDigits(n)); 
    } 
}
2654

जटिलता विश्लेषण

समय जटिलता

O (लॉग (n)) जहाँ n दिए गए पूर्णांक में अंकों की संख्या है। क्योंकि एक संख्या में केवल लॉग (n) अंक होते हैं n.

अंतरिक्ष जटिलता

ओ (1) क्योंकि हमने लगातार जगह का इस्तेमाल किया।

पुनरावर्ती विधि

पुनरावर्ती रूप से पूर्णांक को उलटने के लिए एल्गोरिदम

1. Initialize an integer n containing the number to be reversed.
2. Create a function to reverse a number which accepts an integer variable as it's a parameter.
3. Initialize an integer variable rev as 0 to store the reverse of the given number.
4. Similarly, initialize an integer variable pos as 1 to store the base position of the digit.
5. After that, check if the given number is greater than 0, call the function itself with a given number divided by 10 as it's a parameter. Add the last digit of the given number multiplied by the variable pos in variable rev. Update the variable pos as the multiplication of 10 with variable pos itself.
6. Finally, return the variable containing the reversed number and print it.

कोड

पुनरावर्ती C ++ प्रोग्राम को पूर्णांक रिवर्स करने के लिए

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

int revDigits(int n){ 
    static int rev = 0, pos = 1; 
    if(n > 0){ 
        revDigits(n/10); 
        rev += (n%10)*pos; 
        pos *= 10; 
    } 
    return rev; 
}  
int main(){ 
    int n = 4562; 
    cout<<revDigits(n); 
    return 0; 
} 
2654

पूर्णांक को उलटने के लिए पुनरावर्ती जावा प्रोग्राम

class reverse{ 
    static int rev = 0, pos = 1;
    static int revDigits(int n){ 
        if(n > 0){ 
            revDigits(n / 10); 
            rev += (n % 10) * pos; 
            pos *= 10; 
        } 
        return rev; 
    } 
    public static void main (String[] args){ 
        int n = 4562; 
        System.out.println(revDigits(n)); 
    } 
}
2654

जटिलता विश्लेषण

समय जटिलता

O (लॉग (n)) जहाँ n दिए गए पूर्णांक में अंकों की संख्या है। क्योंकि एक संख्या में केवल लॉग (n) अंक होते हैं n.

अंतरिक्ष जटिलता

ओ (1) क्योंकि हमने लगातार जगह का इस्तेमाल किया।