给定两个以字符串表示的非负整数 num1
和 num2
,返回 num1
和 num2
的乘积。
注意:
num1
和 num2
的长度均小于110。num1
和 num2
均只包含数字 0-9
。num1
和 num2
均不以零开头。string BigNumMultiply(string str1,string str2) {if (str1 == "0" || str2 == "0")return "0";int size1 = str1.size(), size2 = str2.size();string str(size1 + size2,'0');for (int i = size2 - 1; i >= 0; --i) {int mulflag = 0, addflag = 0;for(int j = size1 - 1; j >= 0; --j) {int temp1 = (str2[i] - '0') * (str1[j] - '0') + mulflag;mulflag = temp1 / 10;temp1 = temp1 % 10;int temp2 = str[i + j + 1] - '0' + temp1 + addflag;str[i + j + 1] = temp2 % 10 + '0';addflag = temp2 / 10;}str[i] += mulflag + addflag;}if (str[0] == '0')str = str.substr(1, str.size());return str;
}
本文发布于:2024-02-05 03:30:40,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170723030762677.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |