题目:两个大数相乘。
大数相乘(2)见此。
方法1:将两个大数分别用数组存储,模拟乘法运算,将其中一个数组的每一位分别与令一个大数相乘,结果相加。
代码见后面代码部分的string multiply1(bignumber &bignumber2)。
方法2:同样是上面的思路,不同的是存储过程直接用一个二维数组来存取每一位相乘的结果,然后处理相加的过程。
代码见后面代码部分的string multiply2(bignumber &bignumber2)。
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
class bignumber
{
private:
string bigno;
bool checkout;
bignumber();
bool checknumber()
{
for(int count = 0; count < bigno.length(); ++count)
{
if(!isdigit(bigno[count]))
{
return false;
}
}
return true;
}
public:
explicit bignumber(const char tocopy[])
{
bigno = tocopy;
checkout = checknumber();