0 votos
por (540 puntos) en Java
Hola de nuevo, ahora presento algunas dudas sobre métodos públicos (public) y de clase (static);

Nos dieron algunos ejemplos:

1. Este método devuelve el número de cifras de [n] cuando n esté en base 10:

<pre lang='java'>public static int numCifras (int n) {
int cuenta=1;
n=n/10;
while (n!=0) {
cuenta ++; n=n/10;
}
return cuenta;
}
2. Este método devuelve la suma de las cifras de [n] cuando n esté en base 10:

<pre lang='java'>public static int sumaCifras (int n) {
if (n<0) n=-n;
int suma=0;
while (n!=0) {
suma += n % 10;
n=n/10;
}
return suma
}
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.

2. Un método que devuelva [true] si y solo si [a] y [b] son primos entre si.

3. Un método que devuelva el mayor de los valores de a, b y c.

4. Un método que devuelva el mayor de los valores de a y b.

5. Un método que devuelva un String que representa [cifra] como un número romano, cifra>=0 y cifra<=9.

Sus respectivos códigos tienen que ser así:

<pre lang='java'>1. public static int cifraMayor (int n) {      CODIGO      }
<pre lang='java'>2. public static boolean sonPrimosEntreSi (int a, int b) {     CODIGO     }
<pre lang='java'>3. public static int mayor (int a, int b) {    CODIGO          }
<pre lang='java'>4. public static int mayor (int a, int b, int c) {      CODIGO    }
<pre lang='java'>5. public static String romanizarCifra (int cifra) {       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

Y del número 5 poner:

<pre lang='java'>public static String romanizarCifra (int cifra) {
cifra>=0 &amp;&amp; cifra<=9
if (cifra==1)
return I;
else if (cifra==2)
return II;
else if (cifra==3)
return III;
else if (cifra==4)
return IV;
else if (cifra==5)
return V;
else if (cifra==6)
return VI;
else if (cifra==7)
return VII;
else if (cifra==8)
return VIII;
else if (cifra==9)
return IX;

}
Eso es lo que se me ha ocurrido poner hasta el momento.

¿Ideas para ayudarme y/o corregirme? Serán bienvenidas ;)


1 Respuesta

0 votos
por (8.5k puntos)
Buenas!

Para el cálculo de la cifra mayor, yo creo que es mas cómodo recorrer el número como un String donde cada posición en una cifra y solo habría que calcular el máximo.

Usando la función charAt recorrer todo el String y obtienes todas las cifras.

http://download.oracle.com/javase/1.6/docs/api/java/lang/String.html#charAt(int)

Un saludo


Preguntas relacionadas

Bienvenido a Dudas de Programación, donde puedes hacer preguntas y recibir respuestas sobre los problemas más frecuentes de los lenguajes de programación, frameworks de desarrollo y bases de datos que utilices. Foro de Línea de Código

Categorías

...