Удалить цифру из числа
Из натурального числа удалить заданную цифру. Число и цифру вводить с клавиатуры.
Например, задано число 5683. Требуется удалить из него цифру 8. Получится число 563.
Задача усложняется тем, что заранее неизвестно количество разрядов числа. Поэтому исходное число проще начать проверять с конца с помощью оператора mod
(нахождения остатка от деления). Делить надо на 10, чтобы получить последнюю цифру числа.
Если последняя цифра не совпадает с цифрой, которую требуется удалить, то ее надо перенести в другое число, учитывая разрядность числа.
var
n, a, ch, sum, raz: integer;
begin
write('Введите целое натуральное число: ');
readln(n);
write('Какую цифру надо удалить? ');
readln(ch);
sum := 0; // новое число
raz := 1; // разряд
while n > 0 do begin
a := n mod 10; // последняя цифра числа
if ch <> a then begin
sum := sum + a * raz; // перенос цифры в другое число
raz := raz * 10; // увеличение разряда
end;
n := n div 10; // удаляем последнюю цифру из исходного числа
end;
writeln('Ваше число ', sum)
end.
Пример выполнения программы:
Введите целое натуральное число: 18130
Какую цифру надо удалить? 1
Ваше число 830
Программа удаляет все вхождения заданной цифры.