Ejemplos de Recursividad. Contar las cifras de un número entero de forma recursiva

Programa java que calcula el número de cifras de un número entero de forma recursiva.  

La solución recursiva se basa en lo siguiente:

Caso Base:

Si n < 10 el número tiene 1 cifra

Si n >=10 tiene las cifras de un número con una cifra menos, más 1.

Es decir, si por ejemplo el número es 1234, el número de cifras es las suma de cifras del número 123 más una.

El programa que calcula el número de cifras de un número entero de forma recursiva es el siguiente:

import java.util.Scanner;
public class CuentaCifrasRecursivo {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int num;
        do{
           System.out.print("Introduce un numero entero >0 ");
           num = sc.nextInt();
        }while(num <= 0);
        System.out.println("Número de cifras: " + numeroCifras(num));                                             
    }

    //método recursivo para contar las cifras de un número
    public static int numeroCifras(int n){
           if(n < 10) { //caso base
              return 1;
           } else {
              return 1 + numeroCifras(n/10);
           }
    }
}

Más ejemplos de recursividad

7 comentarios:

  1. public class CuentaCifras {
    public static int numerocifras(int n){
    if(n<10)
    return 1;
    else return 1 + numerocifras(n/10);

    public static void main(String[] args) {
    int n =(Integer.parseInt(JOptionPane.showInputDialog("digite un numero mayor que dos cifras")));

    JOptionPane.showMessageDialog(null,"numero de cifras" + cuentacifras.numerocifras(n));
    }
    }

    ResponderEliminar
  2. no manchen... ufff no pnse q solo sea eso...

    ResponderEliminar
  3. Hola, yo necesito ayuda para sacar un método recursivo que introduciendo un número por ejemplo 1007, tiene que decirme la cantidad de ceros que hay en el número, en este caso 2, alguna idea?

    ResponderEliminar
  4. hola, yo no sé como imprimir numeros pared recursivamente, es decir, si doy un 10, se imprima 2,4,6,8,10
    agradecería la ayuda! Buena tarde

    ResponderEliminar
  5. hola, yo no sé como imprimir numeros pared recursivamente, es decir, si doy un 10, se imprima 2,4,6,8,10
    agradecería la ayuda! Buena tarde

    ResponderEliminar