题解 | #数列计数#

数列计数

https://www.nowcoder.com/practice/ef3b7b1b21d24d07a224e03a562f12d1

官方视频中的BigNumber 我用string实现

struct BigNumber{

    string num;

    BigNumber& operator=(const string &s){

        num=s;

        return *this;

    }

    BigNumber operator+(const BigNumber &b){

        BigNumber ans;

        string n=b.num;

        int i=num.size()-1;

        int j=n.size()-1;

        int carry=0;

        while (i>=0||j>=0) {

            int a=i>=0?num[i--]-'0':0;

            int b=j>=0?n[j--]-'0':0;

            int sum=a+b+carry;

            ans.num.push_back(sum%10+'0');

            carry=sum/10;

        }

        if(carry>0)

            ans.num.push_back(carry+'0');

        reverse(ans.num.begin(), ans.num.end());

        return ans;

    }

    friend ostream & operator<<(ostream &out, const BigNumber &b);

};

ostream & operator<<(ostream &out, const BigNumber &b){

    out<<b.num;

    return out;

}

全部评论
大家有更好的解决方法吗?比如list
点赞 回复 分享
发布于 2023-05-22 15:24 江苏

相关推荐

点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务