2 条题解

  • 0
    @ 2026-2-2 14:40:26

    scy视频(推荐)

    #include<bits/stdc++.h>
    using namespace std;
    
    struct node
    {
        int a[511], len;
        node()
        {
            len=1;
            memset(a, 0, sizeof(a));
        }
    };
    
    node operator*(node n1, node n2)
    {
        node no;
        no.len = n1.len + n2.len - 1;
        
        for(int i=1; i<=n1.len; i++)for(int j=1; j<=n2.len; j++)no.a[i+j-1] += n1.a[i] * n2.a[j];
       
        for(int i=1; i<=no.len; i++)
        {
            no.a[i+1] += no.a[i]/10;
            no.a[i] %= 10;
        }
        
        int i = no.len;
        while(no.a[i+1] > 0)
        {
            i++;
            no.a[i+1] += no.a[i]/10;
            no.a[i] %= 10;
        }
        while((no.a[i] == 0) && (i > 1)) i--;
        no.len = i;
        
        return no;
    }
    int main()
    {
        char st[511]; node no, n1, n2;
        
        scanf("%s", st+1); n1.len = strlen(st+1);
        for(int i=1; i<=n1.len; i++) n1.a[n1.len - i + 1] = st[i] - '0';
         
        scanf("%s", st+1); n2.len = strlen(st+1);
        for(int i=1; i<=n2.len; i++) n2.a[n2.len - i + 1] = st[i] - '0';
         
        no = n1 * n2;
         
        for(int i=no.len; i>=1; i--) printf("%d", no.a[i]);
        printf("\n");
        return 0;
    }
    
    • 1

    信息

    ID
    94
    时间
    1000ms
    内存
    128MiB
    难度
    7
    标签
    递交数
    521
    已通过
    110
    上传者