C++大整数相乘的一个简单方法

就是模拟算数乘法的一个方法 先由第一个数字的第一个数分别乘以第二个数的从个位数开始的个位数,进行适当的进位就行了
一位位相乘,最后计算出结果

#include
#include
#include
using namespace std;
int main()
{
    string a;
    getline(cin,a);
    string b;
    getline(cin,b);
    int m=a.size();
    int n=b.size();
    string c(m+n,'0');
    int sum=0;
    int p,q;
    for(int i=m-1;i>=0;i--){
        for(int j=n-1;j>=0;j--){
            p=m+n-2-i-j;
            sum+=(b[j]-'0')*(a[i]-'0');
            q=(c[p]-'0')+(sum%10);
            c[p]=(char)(q%10+'0');
            sum/=10;
            sum+=q/10;
        }
        p=m+n-1-i;
    }
    c=c.substr(0,p);
    reverse(c.begin(),c.end());
    cout<

你可能感兴趣的:(C++大整数相乘的一个简单方法)