求助!只有第一位正确,AC二点
查看原帖
求助!只有第一位正确,AC二点
62849
洛必达法则楼主2024/9/8 11:59
    const int Base=1000000000;//进位制
    const int Width=9;//每一位的输出宽度

    vector<int> arr;//按位数值阵列

    BigNum(long long num=0) {*this=num;}//构造函数
    BigNum operator * (BigNum& B)//乘法
    {
        BigNum x;
        x.arr.clear();
        long long g(0);
        for(long long i=0;;i++)
        {
            if(i>=this->size()&&i>=B.size()) break;
            long long opt=1;
            if(i<this->size()) opt*=arr[i];
            if(i<B.size()) opt*=B.arr[i];
            opt+=g;//包含进位数目
            x.arr.push_back(opt%Base);//录入
            g=opt/Base;//记录进位数目
        }
        while(g!=0)
        {
            x.arr.push_back(g%Base);
            g/=Base;
        }
        return x;
    }
    BigNum operator *= (BigNum& B)//累乘
    {
        *this=*this*B;
        return *this;
    }

rt

2024/9/8 11:59
加载中...