zoukankan      html  css  js  c++  java
  • 高精度乘法加强

    转自http://blog.csdn.net/cm_yali/article/details/50607751

    #include<stdio.h>  
    #include<stdlib.h>  
    #include<string.h>  
    char s[30001];  
    long long a[15000],b[15000],c[50001];  
    int main ()  
    {  
        int alen,blen,clen;  
        int i,j,k,m,n;   
        gets(s);  
        alen=strlen(s);  
        k=0;  
        for(i=alen-1;i>=0;i-=3){  
            long long tmp=0;  
            int start;  
            start=i-2;  
            if(start<0)start=0;  
            for(j=start;j<=i;j++)  
                tmp=tmp*10+s[j]-'0';  
            a[++k]=tmp;  
        }  
        alen=k;  
           
        gets(s);  
        blen=strlen(s);  
        k=0;  
        for(i=blen-1;i>=0;i-=3){  
            long long tmp=0;  
            int start;  
            start=i-2;  
            if(start<0)start=0;  
            for(j=start;j<=i;j++)  
                tmp=tmp*10+s[j]-'0';  
            b[++k]=tmp;  
        }  
        blen=k;  
           
        for(i=1;i<=alen;i++)  
            for(j=1;j<=blen;j++)  
                c[i+j-1]+=a[i]*b[j];  
        clen=alen+blen;            
        while(c[clen]==0 && clen>1)  
            clen--;                               
        for(i=1;i<clen;i++)  
            if(c[i]>=1000){  
                c[i+1]+=c[i]/1000;  
                c[i]%=1000;  
                }  
        printf("%lld",c[clen]);  
        for(i=clen-1;i>=1;i--){  
            if(c[i]<10)printf("00");  
            else if(c[i]<100)printf("0");  
            printf("%lld",c[i]);}  
        return 0;  
    }  


  • 相关阅读:
    第 9 章
    第 8 章
    第 7 章
    第 6 章
    第 5 章
    第 4 章
    跳舞链解数独
    minic 类型声明与变量定义句型处理
    minic 动作句型处理
    minic 符号表
  • 原文地址:https://www.cnblogs.com/jhcelue/p/7074545.html
Copyright © 2011-2022 走看看