Уведомления

Группа в Telegram: @pythonsu

#1 Март 11, 2020 09:35:01

Alexanderrrrrror
Зарегистрирован: 2020-02-23
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Циклы. Удаление 3-го числа из числа n =int(input()). Без использования строк

Здравствуйте! Как, используя циклы,целочисленные переменные, удалить 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
нужно реализовать на питоне

Отредактировано Alexanderrrrrror (Март 11, 2020 15:20:58)

Офлайн

#2 Март 11, 2020 10:35:15

Rafik
Зарегистрирован: 2018-09-04
Сообщения: 231
Репутация: +  27  -
Профиль   Отправить e-mail  

Циклы. Удаление 3-го числа из числа n =int(input()). Без использования строк

Можно без цикла: преобразовать в строку, сделать конкатенацию срезов 0:2 и 3:, снова преобразовать в целочисленное значение.

Офлайн

#3 Март 11, 2020 13:56:54

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Циклы. Удаление 3-го числа из числа n =int(input()). Без использования строк

Rafik
преобразовать в строку, сделать конкатенацию срезов 0:2 и 3:, снова преобразовать в целочисленное значение.
а зачем чтото преобразовывать? ведь
Alexanderrrrrror
Пользователь вводит 12345
следовательно на входе и так строка.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#4 Март 11, 2020 14:14:50

Rafik
Зарегистрирован: 2018-09-04
Сообщения: 231
Репутация: +  27  -
Профиль   Отправить e-mail  

Циклы. Удаление 3-го числа из числа n =int(input()). Без использования строк

Alexanderrrrrror
удалить 3 число,из n =int(input())
Преобразует ввод в число. Если убрать int, то можно напрямую брать срезы.

Офлайн

#5 Март 11, 2020 15:05:26

Alexanderrrrrror
Зарегистрирован: 2020-02-23
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Циклы. Удаление 3-го числа из числа n =int(input()). Без использования строк

Rafik
Фишка в том, что сделать это надо без использование слайсов и вообще строк как таковых

Офлайн

#6 Март 11, 2020 15:17:47

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Циклы. Удаление 3-го числа из числа n =int(input()). Без использования строк

Alexanderrrrrror

 s = int('12345'.replace('3', ''))
print(s)



Офлайн

#7 Март 11, 2020 19:02:47

Rafik
Зарегистрирован: 2018-09-04
Сообщения: 231
Репутация: +  27  -
Профиль   Отправить e-mail  

Циклы. Удаление 3-го числа из числа n =int(input()). Без использования строк

Ничего сложного нет. Вот приблизительный алгоритм:
1. присвоить входное значение некоему х. Далее модифицируем переменную х.
2. для модификации используем цикл while с условием x > int(“9”*позиция_удаляемого-1). До цикла объявляем счётчик = 0
3. внутри цикла делаем целочисленное деление х на 10 и наращиваем счётчик.
4. по завершении цикла получаем первые цифры, которые надо оставить. Умножаем их на 10 в степени (счётчик-1)
5. получаем остаток от деления входного значения, не х, а именно входного значения, на 10 в степени (счётчик-1)
print(результат_п4 + результат_п5)
Код будет состоять буквально из 7-8 строк.

Офлайн

#8 Март 11, 2020 20:07:13

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Циклы. Удаление 3-го числа из числа n =int(input()). Без использования строк

Alexanderrrrrror
без использование слайсов и вообще строк как таковых
Насмешили. input выдает строку. С такими условиями вы ничего не введете.



Офлайн

#9 Март 12, 2020 06:07:49

Rafik
Зарегистрирован: 2018-09-04
Сообщения: 231
Репутация: +  27  -
Профиль   Отправить e-mail  

Циклы. Удаление 3-го числа из числа n =int(input()). Без использования строк

doza_and, в условии задачи input обёрнут в int. На входе целочисленное значение. Насколько я понимаю, предлагается работать именно с этим, полученным, int.

Офлайн

#10 Март 12, 2020 07:52:37

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Циклы. Удаление 3-го числа из числа n =int(input()). Без использования строк

Формальное требование чтобы строк не было вообще. В питоне можно всю программу в функциональном стиле сделать не используя переменные. То что нет идентификаторов привязанных к строкам не означает что нет работы со строками.

В данном случае вы вообще не то обсуждаете. Читаем:

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

p.s.
Я вообще считаю авторов задач по программированию в условиях которых присутствует требование “не используя” лентяями или дураками. Когда я принимаю решение задач у студентов то считаю что они могут использовать любые возможности языков. В качестве аргументации в отказе от зачета решения использую только неправильность результата, низкое быстродействие, многословность и запутанность кода, черезмерные требования к ресурсам и т.п.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version