[ Foro de Pascal ]
me pidieron hacer un programa con un planteo recursivo . el problema es el siguiente:
Dado un número entero N mayor que cero y un dígito d, se desea encontrar el número NsinD eliminando toda
aparición del dígito d del número N.
Por ejemplo: * Si N = 232345 y d = 2 NsinD = 3345
mi problema que a la hora de plantearlo decidí hacerlo con una función , pero puedo encontrar la manera correcta de descomponer el numero,les dejo la funcion.
function SacarD(num,D:INTEGER):INTEGER;
var ult:INTEGER;
BEGIN
if num < 10 and num > 0 then
if num =D
then sacarD:=0
else SacarD:=num;
ELse
begin
ult:=num mod 10;
if (ult=D)
then SacarD :=SacarD(num div 10)
else ..... ( no se que hacer si el ultimo rsulta ser diferente a D)
Espero su respuesta , muchas gracias ¡¡¡¡
Casi lo tienes. A ojo, yo diría que sólo te falta seguir sin esa cifra y añadirla al final, con algo como
else SacarD :=SacarD(num div 10) * 10 + ult;
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)