C++实现大数相乘
这个是使用C++实现的大数相乘功能,使用C++和STL,输入两个string类型的字符串,输出乘积结果。
#include <iostream>
#include <string>
#include <vector>
using namespace std;
string Mul(string str1, string str2);
int main()
{
cout << Mul("99999999", "99999999") << endl;
}
string Mul(string str1, string str2)
{
int nLen1 = str1.length();
int nLen2 = str2.length();
string strRet;
vector<int> intV;
intV.resize(nLen1 + nLen2);
for (int i = nLen1 - 1; i >= 0; i --)
{
for (int j = nLen2 - 1; j >= 0; j--)
{
intV[i + j + 1] += (str1[i] - '0') * (str2[j] - '0');
}
}
for (int i = nLen1 + nLen2 - 1; i > 0; i --)
{
intV[i - 1] += intV[i] / 10;
intV[i] %= 10;
}
for (auto n : intV)
{
strRet.push_back(n + '0');
}
for (auto n : intV)
{
if (n != 0)
{
break;
}
strRet = strRet.substr(1);
}
return strRet;
}
以上是 C++实现大数相乘 的全部内容, 来源链接: utcz.com/z/508930.html