Вводится целое число. Вывести число, обратное введенному по порядку составляющих его цифр. Например, введено 3425, надо вывести 5243.
Алгоритм:
- Найдем остаток от деления на 10 исходного числа. Тем самым получим последнюю его цифру.
- Добавим эту цифру к новому числу.
- Разделим нацело на 10 исходное число. Тем самым избавимся от последней цифры в нем.
- Снова найдем остаток от деления на 10 того, что осталось от первого числа. Запомним эту цифру.
- Умножим на 10 второе число. Тем самым увеличим его разрядность до двух и сдвинем первую цифру в разряд десятков.
- Добавим к полученному второму числу запомненную ранее цифру из первого числа.
- Будем повторять действия п. 3-6 пока исходное число не уменьшится до нуля, т. е. пока не избавимся от всех его разрядов.
n1 = int(input(«Введите целое число: «)) n2 = 0 while n1 > 0: # находим остаток — последнюю цифру digit = n1 % 10 # делим нацело — удаляем последнюю цифру n1 = n1 // 10 # увеличиваем разрядность второго числа n2 = n2 * 10 # добавляем очередную цифру n2 = n2 + digit print(‘»Обратное» ему число:’, n2)
Примеры выполнения кода:
5 урок (2 часть) Python. Цикл while — разбиение числа на цифры
Введите целое число: 32809 «Обратное» ему число: 90823
Введите целое число: 78290 «Обратное» ему число: 9287
Приведенный алгоритм решения является математическим, он универсален для большинства языков. Однако средства 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)
Источник: it-systems.su
Вопрос Как разделить число на цифры в Python, используя только арифметические действия?
Соблюдая условие:
while True:
print(*input())
break ну или серьезно:
n = 4532357
tempN = n
length = 0
while tempN:
length += 1
tempN //= 10
while n:
length -= 1
print(n // 10 ** length, end=» «)
n %= 10 ** length
TURANT987
TURANT987
Регистрация 20 Апр 2013 Сообщения 59 Репутация 0 Спасибо 0 Монет 0
На вход функцией input подается 6-значеное число. Нужно разбить его на на отдельные числа. Например: 123456 -> 1 2 3 4 5 6. Делается это для того, чтобы проверить эквивалентность суммы первой и второй тройки чисел (Задача о счастливом билете). В программировании я начинающий и желательно всё сделать операциями div, mod, if-else
19 Обход всех цифр числа с помощью while Python
a = int(input())
b = a//1000
one = b//100
two = b%11
three = b%10
c = a%1000
four = c//100
five = c%11
six = c%10
if (one+two+three)==(four+five+six):
print (Счастливый#39;Обычныйhttps://4cht.com/threads/%D0%9A%D0%B0%D0%BA-%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%B8%D1%82%D1%8C-%D1%87%D0%B8%D1%81%D0%BB%D0%BE-%D0%BD%D0%B0-%D1%86%D0%B8%D1%84%D1%80%D1%8B-%D0%B2-python-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D1%8F-%D1%82%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE-%D0%B0%D1%80%D0%B8%D1%84%D0%BC%D0%B5%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5-%D0%B4%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%B8%D1%8F.259702/» target=»_blank»]4cht.com[/mask_link]
Разделите число на цифры и сохраните их в списке (массиве) с помощью python
Итак, какие-нибудь советы? Может быть, вы знаете способ лучше разделить числа на цифры, а может, еще что-нибудь.
3 ответы
Поскольку вы просто добавляете цифры от наименьшей к наибольшей по порядку, просто используйте пустой список:
dig = [] i = 0 while num > 9: dig.append(num % 10) i += 1 num /= 10 dig.append(num)
В качестве альтернативы просто сделайте
dig = list(int(d) for d in str(num))
Который превратится т.е. 123 в ‘123’ затем превратите каждую цифру обратно в число и поместите их в список, в результате чего [1, 2, 3] .
Если вы хотите, чтобы он был в том же порядке, что и ваша версия, используйте
dig = reversed(int(d) for d in str(num))
Если вы действительно хотите получить длину числа, проще всего сделать len(str(num)) который превращает его в строку, а затем получает длину.
Источник: stackovergo.com