Как перевернуть число в Python?
и использовать срез строки без указания начального и конечного элементов с отрицательным шагом:
r=str(i)[::-1]
переменная r будет иметь тип «строка»
например перевернём числа от 110 до 120
для удобства напишем функцию переворачивания числа (написано в одну строчку, потому что редактор не позволяет делать отступы, что ненаглядно, но позволяет копировать через CTRL+C):
def i_rv(n):return str(n)[::-1]
i_rv(123450)

если результат должен быть числом, то необходимо преобразовать полученную строку в число функцией int:
r=int(str(i)[::-1])

для удобства напишем функцию переворачивания числа (придётся писать в одну строчку, что ненаглядно, но работает):
def i_rvi(n):return int(str(n)[::-1])
Перевернуть число
Вводится целое число. Вывести число, обратное введенному по порядку составляющих его цифр. Например, введено 3425, надо вывести 5243.
Решение задачи на языке программирования Python
Алгоритм:
- Найдем остаток от деления на 10 исходного (первого) числа. Тем самым получим последнюю его цифру. Запомним ее.
- Присвоим эту цифру новому (второму) числу-«перевертышу».
- Разделим нацело на 10 первое число. Тем самым избавимся от последней цифры в нем.
- Снова найдем остаток от деления на 10 того, что осталось от первого числа. Запомним цифру-остаток.
- Разделим нацело на 10 первое число. Избавимся от текущей последней цифры в нем.
- Умножим на 10 второе число. Тем самым увеличим его разрядность до двух и сдвинем первую цифру в более старший разряд.
- Добавим к полученному второму числу запомненную ранее цифру из первого числа.
- Будем повторять действия п. 4-7 пока первое число не уменьшится до нуля, т. е. пока не избавимся от всех его разрядов.
n1 = int(input("Введите целое число: ")) # Последнюю цифру первого числа переносим во второе digit = n1 % 10 n2 = digit # Избавляемся от последней цифры первого числа n1 = n1 // 10 while n1 > 0: # находим остаток - последнюю цифру digit = n1 % 10 # делим нацело - удаляем последнюю цифру n1 = n1 // 10 # увеличиваем разрядность второго числа n2 = n2 * 10 # добавляем очередную цифру n2 = n2 + digit print('"Обратное" ему число:', n2)
Примеры выполнения кода:
Введите целое число: 32809 "Обратное" ему число: 90823
Введите целое число: 78290 "Обратное" ему число: 9287
На самом деле мы можем не добавлять последнюю цифру первого числа во второе до цикла. Если присвоить n2 ноль, то в цикле при выполнении выражения n2 = n2 * 10 не будет происходить сдвига разряда, так как при умножении на 0 получается 0. И первая цифра будет добавляться в разряд единиц.
n1 = int(input("Введите целое число: ")) n2 = 0 while n1 > 0: digit = n1 % 10 n1 = n1 // 10 n2 = n2 * 10 n2 = n2 + digit print('"Обратное" ему число:', n2)
Приведенный алгоритм решения математический и соответствует задаче, если условие, что надо обрабатывать именно число, является строгим.
Однако средства Python позволяют решить подобную задачу более практично. Так у списков есть метод reverse , позволяющий изменять порядок элементов на обратный. Мы можем получить из исходной строки список символов, выполнить его реверс, после чего с помощью строкового метода join опять собрать в единую строку.
n1 = input("Введите целое число: ") n_list = list(n1) n_list.reverse() n2 = "".join(n_list) print('"Обратное" ему число:', n2)
Также можно воспользоваться взятием среза из исходной строки с первого до последнего символа с обратным шагом:
n1 = input("Введите целое число: ") n2 = n1[::-1] print('"Обратное" ему число:', n2)
Два последних варианта решения задачи — это способы переворота строки, а не числа как такового. Если объект, который надо переверуть, изначально имеет числовой тип данных (например, генерируется функцией randint() ), то его придется преобразовывать в строковый тип данных с помощью функции str() . И если на выходе мы должны получить опять же число, то надо будет строку превращать обратно в число с помощью функции int() .
from random import randint print("Исходное число:", end=' ') n1 = randint(5000, 1000000) print(n1) n1 = str(n1) n2 = n1[::-1] n2 = int(n2) print('"Обратное" ему число:', n2)
Исходное число: 970334 "Обратное" ему число: 433079
X Скрыть Наверх
Решение задач на Python
Как перевернуть число с помощью функции в Python?
Самый простой способ перевернуть число это превратить его в строку и с помощью срезов перевернуть. А после поменять тип данных снова на число.
number = 12345 number_as_str = str(number) reversed_number = number_as_str[::-1] new_number = int(reversed_number) print(new_number)# => 54321
Переворот числа
Сформировать из введенного числа обратное по порядку входящих в него цифр и вывести на экран. Например, если введено число 3486, то надо вывести число 6843.
Если постепенно извлекать из первого числа последние цифры (и удалять их после этого из числа) и постепенно «дописывать» их в конец второго, то в итоге мы получим перевернутое первое число.
- Для извлечения последней цифры числа надо найти остаток от деления его на 10.
- Чтобы добавить цифру в конец числа, надо умножить число на 10 (сдвинуть разряды) и затем прибавить цифру-число (количество единиц).
Pascal
перевернуть число паскаль
var
n,m: longint;
begin
readln(n);
m := 0;
while n>0 do begin
m := m*10 + n mod 10;
n := n div 10;
end;
writeln(m);
end.
560601
106065
Язык Си
#include
main() unsigned int n,m;
scanf("%d",&n);
m = 0;
while (n > 0) m = m*10 + n%10;
n = n/10;
>
printf("%d\n",m);
>
1234566
6654321
Python
перевернуть число python (питон)
n = int(input())
m = 0
while n>0:
m = m*10 + n%10
n = n//10
print(m)
45034
43054
КуМир
алг переворот числа
нач
цел n, m
ввод n
m := 0
нц пока n>0
m := m*10 + mod(n,10)
n := div(n,10)
кц
вывод m
кон
109078
870901
Basic-256
input n
m = 0
while n>0
m = m*10 + n%10
n = n\10
endwhile
print m
450287
782054
