大数相乘

根据大数相加,写出的简单的大数相乘的模板,有待改进中~~~~~~

#include<stdio.h>
#include<string.h>
const int N = 100;
int main()

{
    int i,j,k;
    int d1,d2;
    int a[N]={0},b[N]={0},sum[2*N]={0};
    char c[N];
//    memset(c,'0',sizeof(c));
//    memset(a,0,sizeof(a));
//    memset(b,0,sizeof(b));
//    memset(sum,0,sizeof(sum));
//    d1=d2=0;
    scanf("%s",c);
    d1=strlen(c);
    for(i=d1-1,j=0;i>=0;i--)
        a[j++]=c[i]-'0';
    scanf("%s",c);
    d2=strlen(c);
    if(d1<d2)
        d1=d2;
    for(i=d2-1,j=0;i>=0;i--)
        b[j++]=c[i]-'0';
    for(i=0;i<d1;i++)
    {    
        for(j=0;j<d1;j++)
            sum[i+j]+=a[i]*b[j];
    }
    for(i=0;i<=2*d1;i++)
    {
        sum[i+1]+=sum[i]/10;
        sum[i]=sum[i]%10;
    }
    k=2*d1;
    while(sum[k]==0)
        k--;
    for(i=k;i>=0;i--)
        printf("%d",sum[i]);
    printf("\n");
    
    return 0;
}



原文地址:https://www.cnblogs.com/freezhan/p/2638868.html