题解 | #大数乘法#

大数乘法

https://www.nowcoder.com/practice/c4c488d4d40d4c4e9824c3650f7d5571

int c[100000000],a[10000000],b[10000000];
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     * 
     * @param s string字符串 第一个整数
     * @param t string字符串 第二个整数
     * @return string字符串
     */
    string solve(string num1, string num2) {
        // write code here
         string str;
         if(num1=="0"||num2=="0")
            return "0";
        int len1=num1.size(),len2=num2.size();
        for (int i = 0; i < len1; i++) a[i] = num1[len1 - i - 1] - '0';
        for (int i = 0; i < len2; i++) b[i] = num2[len2 - i - 1] - '0';
        for(int i=0;i<len1;i++)
            for(int j=0;j<len2;j++)
                c[i+j]+=a[i]*b[j];
        int k=0;
        while(c[k]||k<len1+len2-1)
        {
            c[k+1]+=c[k]/10;
            c[k]%=10;
            str.push_back(c[k]+'0');
            k++;
        }
        //while(k>0&&!c[k])  k--;
        reverse(str.begin(),str.end());
        return str;
    }
};

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务