в том что на выход получаю перевернутое число. Как можно решить эту проблему?
Ввожу: 120406
Получаю: 6421
n = int(input())
while n > 0:
if n % 10 != 0:
print (n % 10, end='')
n = n // 10
print(int(input().replace("0", "")))
Replace строковый метод
Мы и строку получаем
Спасибо. Совсем забыл про него
👍
return int("".join([x for x in str(n)[::-1] if x != "0"]))
в одну строку
Гоано код. Replace зря что ли придумали
... логики в твоих словах нету время тратить смысла тоже нету
Молодец
та не ты че, прав ты, молодец получается тоже ты
ну так по факту же. у тебя и перебор и сбор. еще й листкомпрех зачем то. твой вариант хуже всем
Тормози да . Времени же у тебя нет . На хер пустоту разводить
В том то и дело что я не сказал что мой способ эффективнее в плане производительности! Просто как вариант вкинул решение в 1 строку, че вы начинаете.
Та успокойся)) Все в порядке парень)
Не слушай даунов сверху, которые тебе советуют реплейс и т. п. вплоть до регулярок. Это джуны, которые ЧСВ сюда своё потешить пришли, пока админы спят, они буянят :) Ты скорее всего проходишь курсы, судя по твоей задаче. Подразумевается, что ты должен решить эту задачу без приведения числа к строке (т. е. не банально однострочником print(input().replace("0", ""))). Начнёшь решать с этим ограничением и сразу почувствуешь, насколько это труднее, чем отключить мозг и вызвать replace().
Ты в правильном направлении начал писать решение, однако у тебя есть некорректность. Как раз нарушает то ограничение, о котором я выше упомянул. Видишь ли, делать в середине цикла print() тоже считается читерством, поскольку ты нигде в твоей программе не получаешь и искомое число целиком, как int.
но если окажется что он проходил раздел по строкам извинишь перед парнями
Тему функций ещё не проходил? Если проходил, или просто знаешь, что это такое, и что оно принимает аргументы и возвращает значение — рассматривай задание так, будто тебе нужно написать функцию, которая принимает какое-то пользовательское число, и возвращает тоже число типа integer (и именно integer!) согласно условию. Ну и преобразование к str в этой функции не использовать.
Повешусь. Я уже заебал, чуть ли не вторая бессонная ночь
а это что то уже усложнение. тоже джун которой с чсв пришел?)
Да, джун-аутсайдер, решил вот алгоритмами повыёбываться
Хуего получается
Это задание (ссылка) к уроку про while. Задачу решил, но у меня получилось все длинно, некрасиво и без while.
Так вот, для решения твоей задачи стоит создать перед циклом переменную, в которую результат запишешь (в начале 0), а так же в моем решении появился ещё вспомогательный множитель (в начале 1, конечно же). В самом цикле мы первым делом определяем цифру, по которой итерируемся на данный момент. Далее всё просто: если она не 0, мы умножаем цифру на множитель, а затем добавляем в результат, и умножаем множитель на десять. Зачем умножать цифру на множитель? Чтобы сохранить разрядность результата. 120406 — первая итерация, берём число 6. Множим на 1 (вспомогательный множитель у нас в начале равен единице). Множитель умножаем на 10. Итог: res будет 6 на данном этапе. factor— 10. Следующий шаг. Цифра 0 — пропускаем. Следующий. Цифра 4 — не ноль, умножаем уже на десять, res после этого шага выходит 46… И так далее. Вот код: n = 120406 factor = 1 res = 0 while n > 0: digit = n % 10 if digit != 0: res += digit * factor factor *= 10 n = n // 10 print(res)
Реверс можно сделать
За твои советы с replace() тебе бы ебало разбить
На хуй иди да. Нормальные советы , рабочие
Тебе на собесе дают элементарнейшее задание: на вход число, на выход число из цифр в обратном порядке исходного. Будешь str() юзать?
Ты со степика курс проходишь?
Revers
Спасибо. Понял. Пойду переделаю
И вообще , был вопрос- был ответ. Где он решает , что - мне было неясно
Не говоря уже о том, что ты не прошёл собес, вызови у любой строки метод >revers или какой ты там имел ввиду?
С каких пор там вообще нужны функции и методы? Ебашишь [::-1] и поехали
Мб он reversed() билт-ин имел ввиду ещё…
Нет. Ссылка Задание к 19
Ну задания по базе практически везде одинаковы
Обсуждают сегодня