zoukankan      html  css  js  c++  java
  • noi 大整数乘法

    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {
        char a[201],b[201];
        while(cin>>a>>b)
        {
            int aa[201],bb[201],c[500]= {0};
            int lena=strlen(a);
            int lenb=strlen(b);
            int qa=lena;
            int qb=lenb;
            for(int i=0; i<lena; i++)///将两个大整数化为数组并且逆序
            {
                aa[qa]=a[i]-'0';
                qa--;
            }
            for(int i=0; i<lenb; i++)
            {
                bb[qb]=b[i]-'0';
                qb--;
            }
            for(int i=1; i<=lena; i++)///模拟乘法
            {
                for(int j=1; j<=lenb; j++)
                {
                    c[i+j-1]+=aa[i]*bb[j];///乘的数记得向前移
                }
            }
            for(int i=1; i<=(lena+lenb); i++)///对得到的数组进行进位
            {
                int w=c[i]/10;
                c[i]%=10;
                c[i+1]+=w;
            }
            int t=0,h;
            for(int k=(lena+lenb); k>=1; k--)///从第一个不为0的数字那里开始输出
            {
                if(c[k]!=0)
                {
                    h=k;
                    t++;///如果答案不为0则t变1
                    break;
                }
            }
            if(t==0)///如果t不是1说明答案为0
                cout<<0;
            else
            {
                for(int i=h; i>=1; i--)///对于答案不是0的,,一位一位输出
                {
                    cout<<c[i];
                }
            }
            cout<<endl;
        }
        return 0;
    }
  • 相关阅读:
    Count on a tree
    图论1 1009
    DP2 1008
    DP1 1008
    NOIP 模拟 1006
    2019 CSP-S 初赛退役记
    9.13——TEST NOIP模拟测试
    [洛谷P2387][NOI2014]魔法森林
    [洛谷P2596][ZJOI2006]书架
    [BZOJ4241]历史研究
  • 原文地址:https://www.cnblogs.com/tp25959/p/10233122.html
Copyright © 2011-2022 走看看