void Multiple(char A[], char B[], char C[]) {
int TMP, In=0, LenA=-1, LenB=-1;
while(A[++LenA] != ‘’);
while(B[++LenB] != ‘’);
int Index, Start = LenA + LenB – 1;
for(int i=LenB-1; i>=0; i–) {
Index = Start–;
if(B[i] != ‘0’) {
for(int In=0, j=LenA-1; j>=0; j–) {
TMP = (C[Index]-‘0’) + (A[j]-‘0’) * (B[i] – ‘0’) + In;
C[Index–] = TMP % 10 + ‘0’;
In = TMP / 10;
}
C[Index] = In + ‘0’;
}
}
}
int main(int argc, char* argv[]) {
char A[] = “21839244444444448880088888889”;
char B[] = “38888888888899999999999999988”;
char C[sizeof(A) + sizeof(B) – 1];
for(int k=0; k<sizeof(C); k++)
C[k] = ‘0’;
C[sizeof(C)-1] = ‘’;
Multiple(A, B, C);
for(int i=0; C[i] != ‘’; i++)
printf(“%c”, C[i]);
}



