高精度乘法(c++)

img

img


这题怎么求 求帮助

你可以参考如下链接:


C语言中的高精度乘法_longj's coding workbench-CSDN博客_c语言高精度乘法 大一新生初谈C语言中的高精度乘法1为什么需要高精度乘法及其实质2高精度乘法原理3高精度乘法的实现a 运算前的准备b一位位地运算c处理进位d输出结果4整体的代码5结语大一新生对高精度乘法的一种通俗理解。。 https://blog.csdn.net/luojj26/article/details/49671121

你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)

#include <bits/stdc++.h>
using namespace std;
int main(){
    string s1, s2;
    int n,k;
    cin>>n;
    for (k = 0; k < n; k++)
    {
        cin>>s1>>s2;
        int len1 = s1.length();
        int len2 = s2.length();
        int res[10001];
        memset(res, 0, sizeof(res));
        for(int i = 0; i < len1; i++){
            for(int j = 0; j < len2; j++){
                res[i+j] += (s1[i] - '0')*(s2[j] - '0');
            }
        }
        if(res[0] >= 10) cout<<res[0]/10;
        for(int i = len1+len2-1; i > 0; i--){
            if(res[i] >= 10){
                res[i-1] += res[i]/10;
                res[i] %= 10;
            }
        }
        for(int i = 0; i < len1+len2-1; i++){
            cout<<res[i];
        }
        cout<<endl;
    }
    return 0;
}