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

Как разделить число на цифры в Python без списков и всего такого. Нужно использовать % или //.

Flame Master Профи (544), закрыт 6 лет назад
Лучший ответ
Андрей Высший разум (468617) 6 лет назад
num % 10 - получаешь самую правую цифру числа num
num = num // 10 - удаляешь самую правую цифру из числа num.

Повторяешь в цикле - пока num не станет равным нулю.
Flame MasterПрофи (544) 6 лет назад
Спасибо!
Ратанин АрсенийПрофи (592) 5 лет назад
СПАСИБО!!!
Благодаря Вам написал код :
n = int(input())
if n%10==1 and n//10%10!=1:
print(n, "программист")
elif n//10%10!=1 and (n%10==2 or n%10==3 or n%10==4):
print(n, "программиста")
else:
print(n, "программистов")

для такой вот задачи с повышенной сложностью!!! :
В институте биоинформатики по офису передвигается робот. Недавно студенты из группы программистов написали для него программу, по которой робот, когда заходит в комнату, считает количество программистов в ней и произносит его вслух: "n программистов".

Для того, чтобы это звучало правильно, для каждого nn нужно использовать верное окончание слова.

Напишите программу, считывающую с пользовательского ввода целое число nn (неотрицательное), выводящее это число в консоль вместе с правильным образом изменён
Вы - топ)
Андрей Высший разум (468617) ИМХО, твой код усложнён лишними проверками. Если сделать 4 ветки, код станет намного понятнее: if n // 10 % 10 == 1: print(n, "программистов") elif n % 10 == 1: print(n, "программист") elif 2 <= n % 10 <= 4: print(n, "программиста") else: print(n, "программистов") Но куда проще использовать массив из 10 значений. Например, так: print (n, 'программист' + ['ов', '', 'а', 'а', 'а', 'ов', 'ов', 'ов', 'ов', 'ов'][0 if n // 10 % 10 == 1 else n % 10]);
КахаЗнаток (432) 3 года назад
числа будут в обратном порядке, а как вывести в нужном без list?
Андрей Высший разум (468617) Каха, Например, через рекурсивную функцию: def dig(n): ~~if n >= 10: dig(n // 10) ~~print(n % 10)
Остальные ответы
Александр Ч Оракул (89713) 6 лет назад
print(37 / 3) # один слэш — это деление с ответом-дробью
print(37 // 3) # два слэша считают частное от деления нацело
# это как операция div в других языках
print(37 % 3) # процент считает остаток от деления нацело
# это как операция mod в других языках
Flame MasterПрофи (544) 6 лет назад
Я знаю это! Я не знаю как с помощью этого разделить число на цифры.
Павел Крезуб Гуру (3553) 6 лет назад
Представить число как строку и пользоваться срезами:
a = 543
a = str(a)
print(a[0]) # >>> '5'
print(a[1]) # >>> '4'
print(a[2]) # >>> '3'
Юрий Моисеев Оракул (83944) 6 лет назад
Если нужно только вывести числа на экран, то так
n=int(input())
while n>0:
print(n%10)
n//=10
Числа выводятся в порядке справа налево. 2 последние строки с отступом.
Похожие вопросы