2 条题解

  • 0
    @ 2025-3-1 21:47:58
    #include <bits/stdc++.h>
    using namespace std;
    
    // 大整数乘法函数
    vector<int> mul(vector<int> &A, vector<int> &B) {
        // 结果数组,大小为 A 和 B 的长度之和
        vector<int> C(A.size() + B.size(), 0);
    
        // 模拟乘法过程
        for (int i = 0; i < A.size(); i++) {
            for (int j = 0; j < B.size(); j++) {
                // 对应位相乘并累加到结果数组的相应位置
                C[i + j] += A[i] * B[j];
            }
        }
    
        // 处理进位
        int t = 0;
        for (int i = 0; i < C.size(); i++) {
            t += C[i];
            C[i] = t % 10;
            t /= 10;
        }
    
        // 去除前导零
        while (C.size() > 1 && C.back() == 0) {
            C.pop_back();
        }
    
        return C;
    }
    
    int main() {
        string a, b;
        vector<int> A, B;
        cin >> a >> b;
    
        // 将输入的字符串转换为整数数组,低位在前
        for (int i = a.length() - 1; i >= 0; i--) {
            A.push_back(a[i] - '0');
        }
        for (int i = b.length() - 1; i >= 0; i--) {
            B.push_back(b[i] - '0');
        }
    
        // 调用乘法函数
        vector<int> ans = mul(A, B);
    
        // 输出结果
        for (int i = ans.size() - 1; i >= 0; i--) {
            cout << ans[i];
        }
        cout << endl;
    
        return 0;
    }
    
    • -1

      #include<bits/stdc++.h>

      using namespace std;、

      int main(){ int a,b; cin>>a>>b;

      cout<<a*b;
      

      }

      • 1

      信息

      ID
      5361
      时间
      1000ms
      内存
      125MiB
      难度
      2
      标签
      递交数
      90
      已通过
      40
      上传者