有两个用字符串表示的非常大的大整数,算出他们的乘积,也是用字符串表示。不能用系统自带的大整数类型。
区块链毕设网qklbishe.com为您提供问题的解答
有两个用字符串表示的非常大的大整数,算出他们的乘积,也是用字符串表示。不能用系统自带的大整数类型。
#include <vector>
#include <string>
using namespace std;
string multiply(string num1, string num2) {
if(num1 == "0" || num2 == "0") {
return "0";
}
int m = num1.size(), n = num2.size();
vector<int> res(m+n, 0);
for(int i=m-1;i>=0;i–) {
int x = num1[i] – ‘0’;
for(int j = n-1;j>=0;j–) {
int y = num2[j] – ‘0’;
res[i+j+1] += x*y;
}
}
for(int i=m+n-1;i>0;i–) {
res[i-1] += res[i]/10;
res[i] = res[i]%10;
}
string resStr;
int i = res[0] == 0? 1 : 0;
for(;i<n+m;i++) {
resStr += to_string(res[i]);
}
return resStr;
}
int main()
{
string num1, num2;
cin >> num1;
cin >> num2;
cout << multiply(num1, num2);
return 0;
}
以上就是关于问题有两个用字符串表示的非常大的大整数,算出他们的乘积,也是用字符串表示。不能用系统自带的大整数类型。的答案
欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。
区块链NFT链游项目方科学家脚本开发培训