请问为什么照着深基上打的代码却在重载运算符出了问题?谢谢。

P1009 [NOIP1998 普及组] 阶乘之和

tanghg @ 2022-06-03 08:12:46

rt。

#include <iostream>
#include <cstring>
using namespace std;
const long long MAX=100;
typedef int  ll;
struct Bigint{
    ll l,a[MAX];
    Bigint(ll x=0){
        memset(a,0, sizeof(a));
        for (l  = 1; x ; ++l) {
            a[l]=x%10;
            x/=10;
        }
        l--;
    }
    int &operator[](ll i){
        return a[i];
    }
    void fla(ll L){
        l=L;
        for (int i = 1; i <=l ; ++i) {
            a[i+1]=a[i]/10;
            a[i]%=10;
        }
        while (!a[l]){
            l--;
        }
    }
    void out(){
        for (int i = max(1,l); i >=1 ; --i) {
            cout<<a[i];
        }
    }
    Bigint operator+(Bigint a,Bigint b){
        Bigint c;
        ll l= max(a.l,b.l);
        for (int i = 1; i <=l ; ++i) {
            c[i]+=a[i]+b[i];
        }
        c.fla(l+1);
        return c;
    }
    Bigint operator*(Bigint a, ll b){
        Bigint c;
        ll l=a.l;
        for (int i = 1; i <=l ; ++i) {
            c[i]=a[i]*b;
        }
        c.fla(l+11);
        return c;
    }
};
int main() {
    Bigint a(0),f(1);
    ll n;
    cin>>n;
    for (int i = 1; i <=n ; ++i) {
        f= f * i;
        a= a + f;
    }
    a.out();
    return 0;
}

还有一个小问题。

Bigint(ll x=0){
        memset(a,0, sizeof(a));
        for (l  = 1; x ; ++l) {
            a[l]=x%10;
            x/=10;
        }
        l--;
    }

这一段代码有什么作用呢,为什么要这样初始化? 第一次发帖,有什么问题我会改。


by Super_Supper @ 2022-06-03 09:03:40

这是把一个整型的数转换成 Bigint 类型的构造函数


by tanghg @ 2022-06-03 09:04:30

@sb_yyds 我懂了,也就是说转换一下。


by Super_Supper @ 2022-06-03 09:04:51

@Tanghaoge 第二次的代码不是 CE 了吗?


by tanghg @ 2022-06-03 09:06:08

@sb_yyds 不是的,我在dev里面没加cstring,改了之后可以输出


by _6872_ @ 2022-06-03 09:09:28

这个马蜂我服了,跟我们教练有一拼


by Super_Supper @ 2022-06-03 09:10:20

@Tanghaoge 可是我在 VSCode 里面没有输出?


by tanghg @ 2022-06-03 09:11:08

@sb_yyds 你要加一个cstring吧,我没改


by tanghg @ 2022-06-03 09:11:50

@6872 我的马蜂真的很奇特的QWQ


by Super_Supper @ 2022-06-03 09:12:03

@Tanghaoge 还是没有


by _6872_ @ 2022-06-03 09:12:58

@Tanghaoge 哈哈,理解理解,其实马蜂奇特也挺好看的


上一页 | 下一页