Foro de elhacker.net

Programación => Java => Mensaje iniciado por: siuxoes en 15 Diciembre 2013, 11:32 am



Título: Buscar el número con más ceros en un intervalo
Publicado por: siuxoes en 15 Diciembre 2013, 11:32 am
Hola, tengo un problema al buscar el número que más ceros tenga en un intervalo concreto. Para hacer esto he tenido que hacer una función que calcule el número de ceros. Estoy usando recursividad. Aquí les dejo todo lo usado:

La clase intervalo:

Código:
class Intervalo
{
  int ppo;
  int fin;

  Intervalo ()
  {
  }
 
  Intervalo (int m, int n)
  {
    ppo = m;
    fin = n;
  }
}

La función que calcula el número de ceros:

Código:
int cuantosCeros(int n)
  {
    if(n<10 && n!=0)
      return 0;
    else if(n<10 && n==0)
      return 1;
    else if (n%10==0)
      return 1 + cuantosCeros(n/10);
    else
      return cuantosCeros(n/10);
  }

Y aquí viene mi problema, tengo que crear dos funciones una principal y otra auxiliar que busquen lo dicho antes.
Mi función principal:

Código:
int mayorCantidadCerosAux (Intervalo d, int i)
  {
    if(i==0)
      return 0;
   
  }

Mi función auxiliar:

Código:
  int mayorCantidadCeros (Intervalo d)
  {
    return mayorCantidadCerosAux (d, d.fin);
  }

No tengo ni idea de como seguir.


Título: Re: Buscar el número con más ceros en un intervalo
Publicado por: Nasty35 en 15 Diciembre 2013, 16:10 pm
Para saber el número de 0, puedes calcular Logaritmos de base 10.
Math.log10(1000);
Devuelve 3.
Sería un logaritmo 1000 de base 10 es 3.
Es una manera de expresar 10 ^ 3 = 1000
Si elevas n a 10, se le añaden n 0 al 1.


Título: Re: Buscar el número con más ceros en un intervalo
Publicado por: siuxoes en 15 Diciembre 2013, 16:56 pm
Para saber el número de 0, puedes calcular Logaritmos de base 10.
Math.log10(1000);
Devuelve 3.
Sería un logaritmo 1000 de base 10 es 3.
Es una manera de expresar 10 ^ 3 = 1000
Si elevas n a 10, se le añaden n 0 al 1.

Esa función ya la hice, y ademas tu forma para mi no es válida porque necesito usar recursividad. Gracias!