Programacion, ACM ICPC, UVa Online Judge

El link del problema es el siguiente:
748 – Exponentiation

Lo que nos pide el problema es elevar un numero en punto flotante a una potencia.
Lo complicado aca es que hay que mantener todos los digitos de presicion, asi que lo mas recomendable es usar Java con BigDecimal.

Al utilizar el metodo pow del BigDecimal, si lo imprimimos tal cual, tendremos el problema que el resultado lo deja como notacion cientifica. Para solucionarlo lo que usaremos es el metodo toPlainString() de BigDecimal que nos regresa un String con todos los digitos.

Lo unico a tener en consideración es que cuando la parte entera es igual a cero, no se coloca el cero y se empieza desde el punto decimal, y que hay que mostrar el numero correcto de decimales.
Para los decimales solo contamos el numero de elementos de la parte decimal del numero que vamos a elevar y multiplicarlo por la potencia que vamos a elevar.
Ejemplo:
95.123 12
Numeros en la parte decimal = 3
Potencia = 12
Numero de dígitos en la parte decimal despues de elevar a la potencia = 3*12

1.0100 12
Numero en la parte decimal = 2
Potencia = 12
Numero de digitos en la parte decimal despues de elevar a la potencia = 2*12

Código en Java

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: