Red de conocimientos sobre prescripción popular - Remedios caseros - El producto de dos valores enteros en lenguaje C

El producto de dos valores enteros en lenguaje C

/*

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 dígitos).

Salida: producto de dos números.

*/

# incluir & ltstdio.h & gt

# incluir & ltstring.h & gt

# incluir & ltstdlib .h & gt

#Definir el valor máximo 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(sum, 0, sizeof(sum))

for(I = 1; I & lt= laI++) /*Usar matrices para operaciones de simulación*/

for(j=1, lsum = I-1; j &; lt = lbj++)

suma[++ lsum]+= b[j]* a[I];

for(I = 1; I<= lsumI++)/*carry Procesamiento */

if(suma[I]& gt;= 10)

{

if(suma[lsum]& gt;= 10)

lsum++;

suma[I+1]+= suma[I]/10;

suma[I]% = 10;

}

Devuelve 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]; %s ", sa, sb);

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

la = strlen(sa);

lb = strlen(sb);

for(i=1,j=la-1;i<= lai++,j-)

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

for(i=1, j = l b-1; i<= lbi++, j-)

b[I]= sb[ j] -' 0 ';

lsum = bigchenfa(sum,a,b,la,lb);

for(I = lsum;i>0;i-)

printf("%d ",suma[I]);

printf("\n");

Sistema("pausa");

p>

Devuelve 0;

}