C++实现大数相乘

coding

这个是使用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

回到顶部