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 |