Eliminar todos los números excepto el primero que usa recursividad

Básicamente, lo que tengo que hacer es eliminar todos los dígitos y dejar el primero. Si es un número menor de 10, conserve ese número.

Ya hice un código, pero en lugar de eliminar todos los dígitos después del primero, eliminé el primer dígito.

Mi código:

public static int keepFirstDigit(int num) {
  // Can't change anything besides the following code
  if(num==0){
    return 0;
  }
  if(num>0){
    return num % (int) Math.pow(10, (int) Math.log10(num));
  }
  return num;
}

Si el número es 5, la salida debería ser 5.
Si el número es 23, la salida debería ser 2.
Si el número es 62363456, la salida debería ser 6.

Respuesta 1

No estoy seguro de si la recurrencia es la mejor herramienta para hacerlo, sin embargo, esto debería funcionar:

    public static int keepFirstDigit(int num) {


        //Can't change anything besides the following code
       if(num < 10) {
           return num;
       } else {
           return keepFirstDigit(num / 10);
       }
    }

Si numes menor que 10, solo lo devolvemos. De lo contrario, dividimos numpor 10sin el resto y lo pasamos a la llamada al método recursivo.

Para números negativos podríamos cambiar el número negativo a positivo ya que esto no afecta al primer dígito:

    public static int keepFirstDigit(int num) {

        num = Math.abs(num);

       if(num < 10) {
           return num;
       } else {
           return keepFirstDigit(num / 10);
       }
    }

También podríamos hacer lo absanterior antes de llamar a este método y pasarlo como parámetro.

Respuesta: 2

No estoy seguro de si necesita hacerlo recursivamente, pero si no lo hace, lo haría así

public static int keepFirstDigit(int num) {
  String tempNum = String.valueOf(num).substring(0,1);
  return((int) Integer.parseInt(tempNum));
}

pero si lo haces, solo usa los otros ejemplos que ya se han publicado

Respuesta: 3

Esto también se puede lograr usando Strings, tal vez piense en esto:

public static int keepFirstDigit(int num) {
   //Can't change anything besides the following code
   return Integer.parseInt((num+"").charAt(0)+"");
}
Respuesta: 4

Escribí una pequeña aplicación Java en el cliente que inserta una imagen como BLOB en una tabla en el IBM i. Cuando consulto la tabla, veo que la columna se ha rellenado. ¿Cómo puedo mostrar los datos BLOB como ...

[ERROR] Error al ejecutar el objetivo org.apache.maven.plugins: maven-surefire-plugin: 2.22.1: prueba (prueba predeterminada) en el proyecto tormenta-cliente: hay fallas de prueba. [ERROR] [ERROR] Consulte D: \ FYP_1 \ ...

Tenía la aplicación básica Spring MVC + Hibernate. Aquí está mi web.xml: <? Xml version = "1.0" encoding = "UTF-8"?> <Web-app xmlns = "http://java.sun.com/xml/ns/javaee" xmlns: xsi = "http: // ...

Primero un poco de contexto: Parte 1: obtengo todos los valores de la columna VOTOS en la tabla RESULTADOS DE LA ENCUESTA Parte 2: Cada vez que vote por un animal específico, addVote () se activará con su parámetro específico I ...