Найти - Пользователи
Полная версия: Циклы. Удаление 3-го числа из числа n =int(input()). Без использования строк
Начало » Python для новичков » Циклы. Удаление 3-го числа из числа n =int(input()). Без использования строк
1 2
Alexanderrrrrror
Здравствуйте! Как, используя циклы,целочисленные переменные, удалить 3 число,из n =int(input())
то есть:
Пользователь вводит 12345
А вывод будет 1245
Заранее благодарю !
То есть такой код на паскале
var
a, b: longint;
n, m: byte;
begin
readln(a);
readln(n);
b := 0;
while a > 0 do begin
m := a mod 10;
if m <> n then
b := b * 10 + m;
a := a div 10;
end;
while b > 0 do begin
a := a * 10 + b mod 10;
b := b div 10;
end;
writeln(a);
end
нужно реализовать на питоне
Rafik
Можно без цикла: преобразовать в строку, сделать конкатенацию срезов 0:2 и 3:, снова преобразовать в целочисленное значение.
PEHDOM
Rafik
преобразовать в строку, сделать конкатенацию срезов 0:2 и 3:, снова преобразовать в целочисленное значение.
а зачем чтото преобразовывать? ведь
Alexanderrrrrror
Пользователь вводит 12345
следовательно на входе и так строка.
Rafik
Alexanderrrrrror
удалить 3 число,из n =int(input())
Преобразует ввод в число. Если убрать int, то можно напрямую брать срезы.
Alexanderrrrrror
Rafik
Фишка в том, что сделать это надо без использование слайсов и вообще строк как таковых
FishHook
Alexanderrrrrror
 s = int('12345'.replace('3', ''))
print(s)
Rafik
Ничего сложного нет. Вот приблизительный алгоритм:
1. присвоить входное значение некоему х. Далее модифицируем переменную х.
2. для модификации используем цикл while с условием x > int(“9”*позиция_удаляемого-1). До цикла объявляем счётчик = 0
3. внутри цикла делаем целочисленное деление х на 10 и наращиваем счётчик.
4. по завершении цикла получаем первые цифры, которые надо оставить. Умножаем их на 10 в степени (счётчик-1)
5. получаем остаток от деления входного значения, не х, а именно входного значения, на 10 в степени (счётчик-1)
print(результат_п4 + результат_п5)
Код будет состоять буквально из 7-8 строк.
doza_and
Alexanderrrrrror
без использование слайсов и вообще строк как таковых
Насмешили. input выдает строку. С такими условиями вы ничего не введете.
Rafik
doza_and, в условии задачи input обёрнут в int. На входе целочисленное значение. Насколько я понимаю, предлагается работать именно с этим, полученным, int.
doza_and
Формальное требование чтобы строк не было вообще. В питоне можно всю программу в функциональном стиле сделать не используя переменные. То что нет идентификаторов привязанных к строкам не означает что нет работы со строками.

В данном случае вы вообще не то обсуждаете. Читаем:
Alexanderrrrrror
Как, используя циклы,целочисленные переменные, удалить 3 число,из n =int(input())
У input не бывает трех чисел на выходе. Условия задачи неправильные. Решение задачи по удалению ТРЕТЬЕГО ЧИСЛА невозможно, его там нет. Точка. Автор условия задачи не понимает разницы между понятиями строка, число, цифра.

p.s.
Я вообще считаю авторов задач по программированию в условиях которых присутствует требование “не используя” лентяями или дураками. Когда я принимаю решение задач у студентов то считаю что они могут использовать любые возможности языков. В качестве аргументации в отказе от зачета решения использую только неправильность результата, низкое быстродействие, многословность и запутанность кода, черезмерные требования к ресурсам и т.п.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB