Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как разделить число на цифры в Python, используя только арифметические действия?

бабзи бабиизи Ученик (63), закрыт 2 года назад
На ввод подаётся число с клавиатуры произвольной длинны, надо разбить его на цифры, без использования списков, цикла for. Т.е использовать while, if, и арифметику обычную
Лучший ответ
Ксения Райт Высший разум (101058) 2 года назад
Легче лёгкого!
N = int(input('N : '))
if N == 0: print(N); input(); exit()
n, k = abs(N), 0
while n: n //= 10; k += 1
p, n = 10**(k - 1), abs(N)
while p > 0: print(n//p, ' ', end=''); n%=p; p//=10
print(); input()
Simply CodingПрофи (588) 2 года назад
ваш код настолько запутан, что от него хочется плакать.
Ксения РайтВысший разум (101058) 2 года назад
Наоборот: всё яснее некуда! Но неучам этого не понять...
Остальные ответы
SyzeS / BS Знаток (441) 2 года назад
На вход функцией input подается 6-значеное число. Нужно разбить его на на отдельные числа. Например: 123456 -> 1 2 3 4 5 6. Делается это для того, чтобы проверить эквивалентность суммы первой и второй тройки чисел (Задача о счастливом билете). В программировании я начинающий и желательно всё сделать операциями div, mod, if-else

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 ('Счастливый')
else:
print ('Обычный')
бабзи бабиизиУченик (63) 2 года назад
че ты мне копипастишь с соседней темы, это совсем другая задача, я же говорю, что нужно произвольное число поделить. не обязательно из шести знаков
Simply Coding Профи (588) 2 года назад
Т.е. если ввод 123, то вывод 1 2 3?
бабзи бабиизиУченик (63) 2 года назад
Да
Simply Coding Профи (588) бабзи бабиизи, Ожидай.
Vitness Просветленный (35240) 2 года назад
Делением и остатком от деления на 10
% 10 - последняя цифра
// 10 - все число, кроме последней цифры

Соблюдая условие:
 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
Simply CodingПрофи (588) 2 года назад
Не, у него случай другой немного. Я понял от кого ты взял.
Молот Шотландцев Высший разум (301711) 2 года назад
 n = 4532357 
while n >= 1:
print(n % 10)
n = n // 10
бабзи бабиизиУченик (63) 2 года назад
Но ведь оно выводит числа в обратном порядке
Молот Шотландцев Высший разум (301711) Разрешены только арифметические действия. Чтобы при таком условии выводить цифры в прямом порядке, а не в обратном, этого не достаточно (как думаю)
Похожие вопросы