[ Foro de Pascal ]

descomposición de números

14-Nov-2019 21:47
Invitado (AYUDAA, (problema programa pascal))
1 Respuestas

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 ¡¡¡¡


17-Nov-2019 02:21
Nacho Cabanes (+83)

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.)