Foro de elhacker.net

Foros Generales => Dudas Generales => Mensaje iniciado por: Mastodonte97 en 20 Septiembre 2018, 19:34 pm



Título: URGENTE!!!!Metodo recursivo impresion de dígitos
Publicado por: Mastodonte97 en 20 Septiembre 2018, 19:34 pm
Buenas gente!!

Necesito ayuda para resolver el siguiente método:

Imprimir los dígitos de un número particular (posición 1 son las unidades, funciona con un número de cualquier tamaño)

Ej: 1684 imprime:

Posición 1 es 4
Posición 2 es 8
Posición 3 es 6
Posición 4 es 1

Gracias gente!!!


Título: Re: URGENTE!!!!Metodo recursivo impresion de dígitos
Publicado por: simorg en 20 Septiembre 2018, 19:51 pm
Hola, expon lo que lleves codeado hasta el momento, sinó no te podran ayudar, no se hacen tareas en el Foro.


Saludos.


Título: Re: URGENTE!!!!Metodo recursivo impresion de dígitos
Publicado por: OmarHack en 20 Septiembre 2018, 23:48 pm
No has dicho ni el lenguaje xD


Título: Re: URGENTE!!!!Metodo recursivo impresion de dígitos
Publicado por: Serapis en 21 Septiembre 2018, 02:02 am
Cuando no dicen lenguaje, puede aceptarse o entenderse que pseudocódigo es suficiente y que ya lo tarducirán al lenguaje que precisen...

Lo primeor que debes saber es que lo puedes atacar como número o como cadena de texto...

Aquí el pseudocodigo para el caso de tratarlo como número (como string es más sencillo, así que lo dejo a  tu imaginación)

Código:
funcion ImprimriNumero( entero numero)
  // no consideramos la posibilidad de que tenga decimales.

  Si (numero esdistinto de 0)
     imprimirUltimaCifra(numero, 0)
  sino
      imprimir "Posicion 1 es 0"
  fin si
fin funcion

funcion ImprimirUltimaCifra(entero Valor, byte posicion)
    byte cifra
    Si (valor esdistintode 0)
        cifra = (valor modulo 10)
        valor = (valor /10) // ó ((valor - cifra) \10) , la barra '/' representa la division entera
        posicion +=1  // si quieres imprimir como posición 0, la primera cifra, mueve esta línea detrás de la de imprimir
        imprimir "posicion " + posicion.tostring + "es " + cifra.tostring
        ImprimirUltimacifra(valor, posicion)
    sino
        Devolver  // aquí llega cuando ya no quedan cifras a la derecha.
        // puede omitirse, pero va bien si lo ejecutas paso a paso y así ves como se entra en esta parte una y otra vez cuando se alcanzó el final... hasta agotar la recursión guardada en la pila, que por fin retorna a la función que la llamó inicialmente.
    fin si
fin funcion