計(jì)算機(jī)二級(jí)考試C語(yǔ)言輔導(dǎo):大數(shù)高精運(yùn)算(乘法)

字號(hào):

高精乘法
    -----------------------------------------------------------------------
    先寫(xiě)個(gè)兩個(gè)數(shù)的乘積 有空改成個(gè)多個(gè)數(shù)的積
    -----------------------------------------------------------------------
    #include
    #include
    int i, j, k;
    char a1[50], a2[50];
    int s1[50], s2[50];
    int s[100];
    void mul(int *s1, int *s2, int *s) {
    for (i=0; ifor (j=0; js[i+j]+=s1[i]*s2[j];
    int k=100;
    while (!s[k])
    --k;
    for (i=0,j=0; i<=k; i++) {
    s[i+1]+=s[i]/10;
    s[i]%=10;
    }
    }
    int main() {
    gets(a1);
    gets(a2); int m=strlen(a1)+strlen(a2);
    for (i=strlen(a1)-1; i>=0; --i)
    s1[i]=(a1[strlen(a1)-i-1]-'0');
    for (i=strlen(a2)-1; i>=0; --i)
    s2[i]=(a2[strlen(a2)-i-1]-'0');
    for (i=0; i<100; i++)
    s[i]=0;
    mul(s1, s2, s);
    for (i=m-1; i>=0; --i)//
    printf("%d", s[i]); system("pause");
    }