Ver Mensaje Individual
  #3 (permalink)  
Antiguo 19/10/2010, 19:24
Avatar de HackmanC
HackmanC
 
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: [AYUDA] Métodos públicos y de clase

Hola,

Cita:
Iniciado por Iggy16 Ver Mensaje
1. Este método devuelve el número de cifras de [n] cuando n esté en base 10:
Código:
public static int numCifras (int n) {
int cuenta=1;
n=n/10;
while (n!=0) {
cuenta ++; n=n/10;
}
return cuenta;
}

Y tenemos que construir estos métodos:
1. Un método que devuelva la mayor de las cifras de [n] cuando n esté en base10.

1.
Código:
public static int cifraMayor (int n) {      CODIGO      }
Entonces, yo tengo algunas ideas, vosotros me corregís y ayudáis :)

Mis ideas son:

Del número 1, si por ejemplo tenemos el número en base10: 4186, evidentemente, la cifra mayor es el 8. Pues habrá que construir un método que compare las cifras del número en base10 y devuelva la mayor, algo como hacer un rango de que el número tiene que estar entre el 0 y el 9, entonces hacer. Si el número es el 4186, la cosa sería como en el metodo de numero de cifras, dividir por 10, tenemos el 418, dividir por 10, el 41, dividir por 10, el 4, dividir y obtenemos el 0. A partir de ahí comparar las 4 cifras y ver cuál es mayor. Eso en código Java no sé muy bien como expresarlo :l
Básicamente es el uso de operaciones matemáticas, y lo más simple es hacer un listado en papel para ver los objetivos y resultados:

4865 % 10 = 5
4865 / 10 = 486

486 % 10 = 6
486 / 10 = 48

etc...
  1. Tomar el número y sacar el residuo de la división entre 10. (4865 % 10 = 5)
  2. Ver si el residuo obtenido (5) es el dígito mayor usando IF.
    1. Si es mayor guardarlo y reemplazar como el mayor en una variable.
  3. Tomar el número y dividir (entero) entre 10. (4865 \ 10 = 486)
  4. Repetir mientras sea mayor que 0.
  5. Devolver el mayor.

Saludos,