使用string实现的大整数乘法的代码,不使用algorithm库函数
时间: 2024-03-03 11:54:01 浏览: 63
用c++的string实现大数运算
4星 · 用户满意度95%
以下是使用string实现的大整数乘法的代码:
```c++
#include <iostream>
#include <string>
using namespace std;
string multiply(string num1, string num2) {
int len1 = num1.length(), len2 = num2.length();
string res(len1 + len2, '0');
for (int i = len1 - 1; i >= 0; i--) {
int carry = 0;
for (int j = len2 - 1; j >= 0; j--) {
int sum = (num1[i] - '0') * (num2[j] - '0') + (res[i + j + 1] - '0') + carry;
carry = sum / 10;
res[i + j + 1] = sum % 10 + '0';
}
res[i] += carry;
}
int pos = res.find_first_not_of('0');
if (pos != string::npos) {
return res.substr(pos);
}
return "0";
}
int main() {
string num1, num2;
cin >> num1 >> num2;
string res = multiply(num1, num2);
cout << res << endl;
return 0;
}
```
其中,函数`multiply`接收两个字符串参数`num1`和`num2`,返回它们的乘积,实现方式为模拟竖式乘法。具体来说,从num2的最后一位开始遍历,将num1的每一位与num2的当前位相乘,加上进位,得到当前位的结果,更新res对应的位置。最后,去掉结果中的前导零并返回。
阅读全文