Ir al contenido (saltar navegación)

El incidente de Dhahran

Tiempo máximo: 1,000 sMemoria máxima: 4096 KiB
German MIM-104 Patriot. Imagen CC BY-SA 2.5, por Darkone (Wikipedia)

El 25 de febrero de 1991, durante la operación Tormenta del Desierto, un misil Patriot fracasó en su intento de interceptar y destruir un misil balístico de tipo Scud, que terminó ocasionando 28 bajas entre las filas norteamericanas de la base de Dhahran. La investigación del incidente determinó que el problema había sido una pérdida de significancia por culpa del modo en el que se representan los números reales en los ordenadores, que utilizan aritmética de precisión finita.

Esta falta de precisión de los ordenadores es uno de los secretos más vergonzosos de los informáticos. Restas tan sencillas como 1'2 − 1'0 pueden dar como resultado valores humillantes como 0'19999999999999996.

Cuando te enteraste, decidiste que no querías formar parte de semejante engaño y te propusiste crear una librería de cálculo con números reales de precisión infinita. Has recorrido desde entonces un largo camino, conociendo a Karatsuba o descubriendo el método de Newton-Raphson, pero ya casi lo tienes.

El único problema es la salida. Algunas veces los números finales que escribes tienen ceros superfluos a la izquierda o a la derecha, y esa pequeñez tira por tierra la percepción de la calidad que tiene lo que has construído.

Entrada

Cada caso de prueba es un número no negativo potencialmente con decimales y con ceros sobrantes a la izquierda en la parte entera, o a la derecha de la parte fraccionaria. Todos los números tienen parte entera, pero la parte fraccionaria es opcional. El tamaño total nunca supera los 1000 caracteres, y como separador decimal se utiliza la notación anglosajona con un punto que no aparecerá salvo que haya parte fraccionaria.

Salida

Por cada caso de prueba el programa escribirá el mismo número eliminando los ceros sobrantes.

Entrada de ejemplo

100.10
0038.33
00.000

Salida de ejemplo

100.1
38.33
0