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

Подскажите как дублировать каждую цифру числа в питоне?

Niksan 101 Знаток (436), на голосовании 2 месяца назад
Голосование за лучший ответ
Jurijus Zaksas Искусственный Интеллект (440568) 3 месяца назад
Если совсем простенько, то так:
 n = int(input('Enter a number: ')) 
s = 0
k = 1
while n>0:
s = s + n % 10 * k
k = k * 10
s = s + n % 10 * k
k = k * 10
n = n // 10
print(s)

А если немного подумать, то можно обойтись без копипасты:
 n = int(input('Enter a number: ')) 
s = 0
k = 11
while n>0:
s = s + n % 10 * k
k = k * 100
n = n // 10
print(s)
Niksan 101Знаток (436) 3 месяца назад
Может просто возводить n%10 в степень ще n.count?
Вроде этого:
if n%2 == 0:
for i in range(b.count(b)):
b = b % 10 ** b.count(b)

Если так не выйдет, то можете объяснить почему?
Niksan 101 Знаток (436) Niksan 101, Там должны быть пробелы, но я их просрал
Сергей Просветленный (41841) 3 месяца назад
 print(int("".join(["".join([i]*2) for i in input("Число:\n")]))) 
Если число типа int и положительно, разумеется.
Jurijus ZaksasИскусственный Интеллект (440568) 3 месяца назад
А где здесь число? Можно ввести что угодно, и все удвоится. И ты со скобочками напутал малец.
Сергей Просветленный (41841) Jurijus Zaksas,
  1. Со скобочками всё отлично.
  2. «Что угодно» вводить не нужно. Если «что угодно» («blabla») ввести в ваше решение, то вообще будет ошибка. Эту задачу в любом случае проще решить через строковые операции, добавив лишь соответствующие проверки и вариант для float / отрицательного.
  3. Уверен, что достаточно и моего решения. Вряд ли система проверки будет подставлять иные значения. Это задача как раз на верчение строками и циклами скорее всего.
Похожие вопросы