Как удалить заданное число, через тип данных integer и real?
вот попалась такая задачка: Дано целое число N(>0). Вводится цифра A(0<=A<=9). Вывести число, которое получится путем удаления всех вхождений заданной цифры A из десятичной записи члена N (например, из числа 12325 и цифры 2 получится 135). Число, в котором все цифры - A, должно быть преобразовано в 0. Незначающие нули в старших разрядах полученного числа печатать ну нужно. Я не очень понимаю как именно удалить цифры. Вот код:
var N:=readinteger('N=');
A:=readinteger('A=');
begin
while((N>0) and ((A>=0)and(A<=9))) do
begin
if (N mod 10 = A) then
N:=N div 10;
end;
println(N);
end.
Ответы (1 шт):
Автор решения: MBo
→ Ссылка
Значение А проверять не надо. А надо собрать новое число из годных цифр.
Примерно так (не проверял):
p = 1; //степень десятки
res := 0; //новое число
while N > 0 do begin
d := N mod 10;
if d <> A then begin
res := res + p * d;
p := p * 10;
end;
N := N div 10;
end;