Кері бүтін


Күрделілік дәрежесі оңай
Жиі кіреді MakeMyTrip MAQ
математика String

Проблемалық мәлімдеме

«Кері бүтін сан» проблемасында сізге қайтарылатын саннан тұратын бүтін 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

Бүтін санды қайтаруға арналған қайталама Java бағдарламасы

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.

Ғарыштың күрделілігі

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 - берілген бүтін сандағы цифрлар саны. Себебі санда тек журнал (n) цифрлары бар n.

Ғарыштың күрделілігі

O (1) өйткені біз тұрақты кеңістікті пайдаландық.