Saturday, July 07, 2012

Solución al Problema 5356 - Exponentiation [http://livearchive.onlinejudge.org] con Java

Solución al Problema 5356 - Exponentiation [http://livearchive.onlinejudge.org] con Java
El link del Problema se encuentra en el siguiente enlace
import java.math.BigDecimal;
import java.util.Scanner;

/**
 * 5356 - Exponentiation [http://livearchive.onlinejudge.org] 748 -
 * 748 - Exponentiation [http://uva.onlinejudge.org]
 * 
 * @author BreakDark
 * @version 1.0 beta
 */
// ACEPTADO!!! xD
public class Main {
    public static void main(String[] args) {
        Scanner Lee; // para leer los datos de entrada
        BigDecimal num; // para leer la base

        // AQUI INICIA EL PROGRAMA
        Lee = new Scanner(System.in);
        while(Lee.hasNext()){
            num = new BigDecimal(Lee.next());
            num = num.pow(Lee.nextByte());
            System.out.println(sinCerosInsignificantes(num.toPlainString()));
        }
    }
    /**
     * Esta funcion elimina los ceros insignificantes
     * 
     * @author BreakDark
     * @param numero
     *            El numero que al que se desea eliminar los ceros
     *            insignificantes
     * @return una cadena que representa el numero sin ceros insignificantes
     * */
    private static String sinCerosInsignificantes(String numero) {
        int i, j;
        // buscamos desde el principio
        for(i = 0; i < numero.length(); i++)
            if(numero.charAt(i) != '0')
                break;
        // buscamos desde el final
        for(j = numero.length() - 1; j >= 0; j--)
            if(numero.charAt(j) != '0')
                break;
        return numero.substring(i, j + 1);
    }
}

No comments: