Red de conocimiento informático - Computadora portátil - Utilice el lenguaje C para encontrar el producto de dos números enteros grandes. Explique en detalle.

Utilice el lenguaje C para encontrar el producto de dos números enteros grandes. Explique en detalle.

/*

Entrada de multiplicación de alta precisión: dos líneas, cada línea representa un número entero no negativo (no más de 10.000 bits)

Salida: dos producto de números.

*/

#include lt;stdio.hgt;

#include lt;string.hgt;

#include lt; stdlib.hgt;

#define MAX 10001

int bigchenfa(int *sum, int *a, int *b, int la, int lb) ?/* Multiplicación de alta precisión * /

{

int i, j, lsum = 0;

memset(suma, 0, tamaño de(suma)); p >for(i=1; ilt; = la; i) /* Usar matriz para simular operaciones*/

for(j=1, lsum= i-1; jlt;= lb; j)

suma[ lsum] = b[j] * a[i];

for(i=1; ilt; = lsum; i)/* redondeo*/

if (suma[i] gt;= 10)

{

if (suma [lsum] gt;= 10)

lsum;

p>

suma[i 1] = suma[i] / 10

suma[i] = 10

}

return lsum; /*Devuelve el número de dígitos del producto*

}

int main(void)

{

int a[MAX]={ 0}, b[MAX]={0}, suma[MAX*2]={0};

int la=0, lb=0, lsum=0;

int i, j;

char sa[MAX], sb[MAX];

scanf("s s", sa, sb); p>

printf( "s * s = ", sa, sb);

la = strlen(sa);

lb = strlen(sb); >

for(i =1, j=la-1; ilt; = la; i, j--)

a[i] = sa[j] - '0';

for( i=1, j=lb-1; ilt; = lb; i, j--)

b[i] = sb[j] - '0'; /p>

lsum = bigchenfa(suma, a, b, la, lb)

for(i=lsum; igt; 0; i--)

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

printf("\n");

sistema("pausa");

}