El lenguaje C implementa operaciones con enteros grandes, suma y resta de enteros de 64 bits de largo, y la entrada está limitada a enteros de 64 bits de largo.
# incluir ltstring.h gt
#Número de definición 1005
int main()
{
char str1[N], str 2[N];
int num1[N], num2[N], t, len1, len2, I, j, max
scanf("d ", ampt); //Prueba el grupo de datos T, no escribe resta.
getchar();
mientras(t -)
{
memset(str1, 0, sizeof(str 1)) ;
memset(str1, 0, tamaño de(str 2));
memset(num1, 0, tamaño de(núm 1)); num2, 0, sizeof(num 2));
scanf("s", str 1); //Ingresa el primer número. Este número entero de 1000 dígitos se puede sumar. Puedes cambiar su longitud tú mismo.
scanf("s ", str 2); //Ingrese el segundo número. Debido a que no hay un tipo de datos largo, use una cadena para representar el número entero grande.
len 1 = strlen(cadena 1);
len 2 = strlen(cadena 2);
max = len 1 len2? len 1: len 2;
j = 0;
for(I = len 1-1; I gt=0; I-)//Tenga en cuenta que la conversión se invierte , pero num1 almacena cada bit en dirección directa.
{
num 1[j]= str 1[I]--0; //Convierte a números y guárdalos en la matriz uno por uno.
j;
}
j = 0;
para(I = len 2-1; i gt=0; i -)
{
num 2[j]= cadena 2[I]--0
j
}<; /p>
for(I = 0; IltmaxI) //Agregar poco a poco.
{
num 2[I] = num 1[I]; //Agregar a la matriz num2
if(num 2[I] gt;= 10) //Decimales mayores que 10.
{
núm 2[I]-= 10
núm 2[I 1] = 1
} p>
}
if(num2[max]==1)
printf("d ",num 2[max]);
for(I = max-1;i gt=0;I-)// De esta manera, cada dígito del entero grande se calcula y se genera en orden.
printf("d",num 2[I]);
printf("\n");
}
Devuelve 0;
}