Nombre Password [ Regístrate ]

El tamaño no es lo importante (OIE 4 - 2000)

 

En muchos lenguajes de programación los tipos enteros disponibles sólo permiten representar datos dentro de un rango limitado, debido a las restricciones propias de su representación interna. La utilización de tipos de datos reales en ocasiones permite representar datos pertenecientes a un rango mayor, pero perdiendo precisión en los cálculos. Por ello, puede ser necesario buscar métodos alternativos de representación de los números enteros cuando queramos manipular valores muy grandes.

Objetivo

Se quiere poder multiplicar números enteros grandes sin provocar errores de cálculo ni resultados incorrectos, y sin utilizar números reales.

Entrada

La entrada del programa consiste de una secuencia de líneas, que residen en un archivo de texto (ASCII) con nombre MULT.DAT, que tendrá el siguiente formato:

· La primera línea (la 1) contiene el número m de multiplicaciones a efectuar. Podéis suponer 1 <= m < 10.

· Las 2m líneas siguientes (de la 2 a la 2m+1) contienen, cada una, un número entero representado como una cadena de como máximo 50 caracteres (dígitos -es decir, caracteres entre el '0' y el '9'- posiblemente precedidos del signo '-').

Salida

La salida del programa ha de grabarse en un archivo de texto (ASCII) con nombre MULT.RES, que contendrá una secuencia de m líneas con el resultado de las multiplicaciones:

· La línea k del fichero de salida representa la multiplicación de los enteros contenidos en las líneas 2k y 2k+1 del fichero de entrada. Los enteros se representan también como una cadena de caracteres (dígitos posiblemente precedidos del signo '-'). Los resultados no pueden tener ceros superfluos a la izquierda.

Ejemplo de entrada

3
-0124576679
10859687
00345
42
0
23

Ejemplo de salida

-1352863741439473
14490
0



© (2001-2008) ALGORITMIA.NET - Política de privacidad