es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El arreglo de números decimales grandes no se ordena correctamente cuando hay valores de 0 y 000.000.

Estaba resolviendo un problema de HackerRank en Java en el que tenía que ordenar un arreglo que consta de números decimales usando la clase BigDecimal de forma descendente. La solución funciona muy bien, excepto por un caso en el que aparecen 0 y 000.000. Como son iguales, el problema nos dice que no los mantengamos en el mismo orden de su aparición, pero esto no está sucediendo.

Mi código:

import java.io.;
import java.math.;
import java.util.*;

public class Solution {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int n = input.nextInt();
        String [] array = new String[n];
        for(int i=0; i<array.length; i++){
            array[i] = input.next();
        }
        String temp;
        for(int i= array.length-1; i>=0; i--){
            for(int j=i-1; j>=0; j--){
                if(new BigDecimal(array[i]).compareTo(new BigDecimal(array[j]))>0){
                    temp = array[i];
                    array[i] = array[j];
                    array[j] = temp;
                }
            }
        }
        for(int i=0; i<array.length; i++){
            System.out.println(array[i]);
        }          
    }
}


Entrada de ejemplo:
9 -> el tamaño del array

-100
50
0
56.6
90
0.12
.12
02.34
000.000

Tags:  , ,

Answer

Comments are closed.