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;
    }
  • 相关阅读:
    PHP生成二维码并上传到七牛云
    算法入门---选择排序
    算法入门
    react入门-refs
    react入门-props.children
    react入门-组件方法、数据和生命周期
    react入门-jsx
    递归
    node的path.join 和 path.resolve的区别
    vuex的使用
  • 原文地址:https://www.cnblogs.com/tp25959/p/10233122.html
Copyright © 2011-2022 走看看