求助 T271071 80pts
  • 板块学术版
  • 楼主AndyPomeloMarsGotoHE
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/2/2 14:54
  • 上次更新2023/10/24 02:03:38
查看原帖
求助 T271071 80pts
820210
AndyPomeloMarsGotoHE楼主2023/2/2 14:54

rt,最后一个不知道为何过不去

#include <iostream>
#include <cstring>
using namespace std;

int A[110],B[110],C[110],D[220];
char strA[110],strB[110];

inline void add(){
    for (int i=0;i<110;++i){
        C[i] += A[i] + B[i];
        if (C[i] >= 10){
            ++C[i + 1];
            C[i] -= 10;
        }
    }
}

inline void mul() {
    for (int i=0;i<110;++i){
        for (int j=0;j<=i;++j) D[i] += C[j] * C[i-j];
        if (D[i] >= 10){
            D[i + 1] += D[i] / 10;
            D[i] %= 10;
        }
    }
}

int main(){
    scanf("%s",strA),scanf("%s",strB);
    for (int i=0;i<strlen(strA);++i) A[strlen(strA)-i-1] = strA[i] - '0';
    for (int i=0;i<strlen(strB);++i) B[strlen(strB)-i-1] = strB[i] - '0';
    add(),mul();
    int idx=219;
    for (;idx>=0;--idx) if (D[idx]) break;
    for (;idx>=0;--idx) cout << D[idx];
    cout << endl;
    return 0;
}

2023/2/2 14:54
加载中...