Задача
Дано трехзначное число. Вывести на экран все цифры этого числа, начиная с единиц, и получить новое число, образованное перестановкой единиц и сотен.
Мы всегда представляем число как единое целое, но не стоит забывать, что числа состоят из цифр. Как же выделить у числа все его цифры?
На самом же деле, все решается достаточно просто, если вспомнить математику. А математика нам говорит, что любое число можно разложить на сумму разрядных слагаемых.
Например:
365 = 3*100 + 6*10 + 5*1
.
Мы видим, что каждая цифра - это множитель у соответствующего разрядного слагаемого.
Покажем, как получить каждую цифру числа в отдельную переменную на примере деления столбиком на число 10. Число 10 мы берем, т.к. у нас десятичная система счисления и соответственно разрядные слагаемые 1, 10, 100 и т.д.
Проанализировав рисунок, можно увидеть, что
e = n % 10
# операция n % 10 - вычисляет последнюю цифру числа n
# (то есть цифру единиц) 365 % 10 = 5
d = n // 10 % 10
# операция n // 10 - сокращает число в 10 раз,
# то есть отбрасывает у числа последнюю цифру (365 // 10 = 36),
# теперь мы можем вычислить цифру десятков,
# применив к результату знакомую операцию -
# вычислить остаток от деления на число 10, 36 % 10 = 6
s = n // 100
# чтобы получить цифру сотен, достаточно у числа отбросить справа две цифры,
# то есть дважды разделить на 10
# (n // 10 // 10 или то же самое, что n // 100) 365 // 100 = 3
Имея сохраненные в переменных цифры числа, мы можем составить из них любое другое число, умножая нужную цифру на соответствующие разрядные множители (на 1, 10, 100 и т.д.):
Например, строка ниже получит из исходного числа
n
новое число, у которого переставлены сотни и единицы:
1) цифру единиц (сохраненное в переменной
e
) умножаем на
100
,
2) цифру десятков (сохраненное в переменной
d
) умножаем на
10
,
3) цифру сотен мы может умножить просто на
1
, или просто взять значение, сохраненное в переменной
s
.
Затем значения из пунктов 1, 2 и 3 необходимо просто сложить и получим новое число:
n1 = e*100 + d*10 + s;
Полностью программа будет выглядеть следующим образом:
n = int(input())
e = n % 10
d = n // 10 % 10
s = n // 100
print(e, d, s, e*100 + d*10 + s)