Red de conocimiento informático - Material del sitio web - Cómo sumar dos números enteros de cualquier tamaño en lenguaje C

Cómo sumar dos números enteros de cualquier tamaño en lenguaje C

Para lograr la suma de dos números enteros de cualquier tamaño, no debe haber desbordamiento. Por lo tanto, no se puede utilizar ningún tipo de sistema. La única forma es utilizar una matriz para simular el almacenamiento de enteros e implementar el algoritmo de operación de suma por sí mismo.

Debe prestar atención a los siguientes puntos:

1 Cómo almacenar y generar números grandes

2 Cómo manejar el transporte durante el cálculo

; p>

3 Procesamiento cuando las longitudes de los dos números calculados son diferentes;

4 Procesamiento cuando todavía hay acarreo cuando se alcanza el bit más alto, es decir, la longitud del resultado es mayor que cualquier operando.

El siguiente es un código relativamente simple:

#include?

#include?

char?s[101];

int?sum[101];

int?main()?

{

int?i,?j;

while?(gets(s),?strcmp(s,?"0"))?{// ¿Cuántas matrices se resuelven inteligentemente? ¿Cuántos números se calculan? La situación de suma

j=strlen(s);

for?(i=j-1;?i>=0;?--i)?{

sum[j-i-1]+=(s[i]-'0');//s[i]-'0' significa que los números de caracteres se convierten en números int. ¿Agregarlos a la suma en orden inverso? La suma es primero El número es la suma del último número de s

}

}

j=101;? while(!sum[j]) --j; ?//Reasignar j? para que j sea el número total de dígitos en la suma actual

for?(i=0;i

sum[i+1]+=sum[i]/10;

sum[i] =suma[i ]%10;

}

para?(i=j;?i>=0;?--i)?{

printf("% d",?suma[i]);

}

}