[C con Clase] Trabajar con números exageradamente grandes.

Julio Cesar ggeatom en gmail.com
Lun Jun 16 08:11:10 CEST 2014


Hola a todos, recientemente mientras practicaba y leía el curso de C++ me
surgieron un par de preguntas. La primera de estas es:

(1) De que manera se podría definir una variable en C++, que pudiera
almacenar un numero de hasta 100 (o más) digitos y que no sea usando
cadenas de texto.

Mi segunda pregunta seria la siguiente:

(2) Si definimos la siguiente estructura y consideramos una variable de
este tipo:

struct STN {
   long long N1;
   long long N2;
   long long N3;
} Valor;

Cómo se puede hacer para que yo almacene un numero en Valor de la siguiente
manera:

Supongamos que el numero (llamemos a este número "B") excede el valor
maximo que puede almacenar una variable de tipo "long long", entonces lo
que se tiene que hacer es, dado que no se puede almacenar tan solo en N1,
guarde en N1 el valor máximo posible, despues considaramos el numero que
resulta de restar a B el valor maximo de una variable long long, este nuevo
numero lo intentamos almacenar en N2, si no cabe se almacena el valor
maximo aceptable en N2 y el resto (lo que no se pudo almacenar en N2 se
almacena en N3.

A modo de ejemplo consideremos el numero A=9,999,999,999,999,999,999 el
cual no es almacenable en una variable de tipo long long, entonces N1
contiene el mayor elemento a almacenar y SUPONGAMOS que al restar A - N1
nos queda el numero 666,666 y este se debe almacenar en N2.

Para esta segunda duda, sospecho que se tiene que hacer con una función,
así que mi problema esta mas orientado a como puedo yo manipular ese numero
tan grande y como es que c++ interpreta este numero.

Espero haberme explicado bien, de ante mano quiero agradecerles por la
ayuda brindada. Qué tengan un buen día.


Julio Cesar
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20140616/b8474e2d/attachment.html>


Más información sobre la lista de distribución Cconclase