역 정수

난이도 쉽게
자주 묻는 질문 MakeMyTrip MAQ
수학 조회수 37

문제 정책

"역정 수"문제는 반전 될 숫자를 포함하는 정수 변수 n이 주어 졌음을 나타냅니다. 숫자를 반전시키는 프로그램을 작성하십시오.

반전 정수 다르지 않다 문자열 반전. 정수를 문자열로 쉽게 변환 할 수 있습니다. 그런 다음 다양한 방법을 사용하여 문자열을 뒤집습니다. 그러나 그렇게하는 대신 우리의 작업을 완료하는 또 다른 방법이 있습니다. 정수를 문자열로 처음 변환하는 것은 오버 헤드이기 때문입니다. 따라서 이러한 솔루션을 살펴 보는 대신. 우리는 새로운 방법을 살펴볼 것입니다.

역 정수

13567
76531

설명 : 주어진 숫자의 각 자릿수를 반대로 할 때. 그것은 마지막 숫자를 숫자의 첫 번째 숫자로 바꾸고 첫 번째 숫자를 마지막 숫자로 바꾸는 것입니다. 비슷한 방식으로 숫자의 각 숫자를 처리합니다. 결과적으로 76531을 얻습니다.

578
875

설명 :보다 공식적으로 우리가하는 일은 각 숫자에 색인 번호를 부여하는 것입니다. 0 기반 인덱싱을 고려했으며 숫자를 n이라고 부릅니다. 그런 다음 n [0]을 n [2]에 배치하고 n [2]를 n [0]에 배치합니다. 그런 다음 프로세스가 중간까지 반복됩니다. 이것은 입력을 반전시키는 방법 중 하나 일뿐입니다.

반복 방법

정수를 반복적으로 뒤집는 알고리즘

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.

암호

정수를 반전시키는 반복적 인 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

정수 반전을위한 반복 자바 프로그램

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은 주어진 정수의 자릿수입니다. 숫자에는 log (n) 자리 만 있기 때문에 n.

공간 복잡성

O (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

정수를 반전시키는 재귀 Java 프로그램

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은 주어진 정수의 자릿수입니다. 숫자에는 log (n) 자리 만 있기 때문에 n.

공간 복잡성

O (1) 일정한 공간을 사용했기 때문입니다.

Translate »