Dudas de Programacion » Java » Java Básico

[AYUDA] Métodos públicos y de clase

(2 posts)

Tags:

No tags yet.

  1. 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:

    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:

    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í:

    1. public static int cifraMayor (int n) {      CODIGO      }
    2. public static boolean sonPrimosEntreSi (int a, int b) {     CODIGO     }
    3. public static int mayor (int a, int b) {    CODIGO          }
    4. public static int mayor (int a, int b, int c) {      CODIGO    }
    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:

    public static String romanizarCifra (int cifra) {
    cifra>=0 && 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 ;)

    Posted 1 year ago #


  2. 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

    Saludos
    Posted 1 year ago #

Reply

You must log in to post.

1,070 posts in 437 topics over 40 months by 388 of 892 members. Latest: lalala, nijh1, jasu

Acerca de...

Dudas de Programación es una Web, dentro del proyecto aulambra.com que nace con la idea de propocionar un foro de consultas sobre diferentes temas de programación. Orientado a ayudar a los internautas hispano-hablantes en Internet.

Ir al Blog de Linea de Código

Otras Webs