#include <iostream>
using namespace std;
int main()
{
char a[] = "453453236478236783462786";
char b[] = "98928342347896248326";
int lenA = strlen(a);
int lenB = strlen(b);
int lenR = lenA+lenB;
int* r = new int[lenR];
int* c = new int[lenR];
int i, j, k, c1;
for(i=0; i<lenR; i++)
{
r[i] = 0;
c[i] = 0;
}
for(i=lenA-1; i>=0; i--)
{
for(j=lenB-1; j>=0; j--)
{
// k = (a[i]-'0')*(b[j]-'0');
// c1 = r[i+j+1] + k%10 + c[i+j+1]%10;
// r[i+j+1] = c1%10;
// c[i+j] = c[i+j] + k/10 + c[i+j+1]/10 + (c1>9?c1/10:0);
// c[i+j+1] = 0;
k = (a[i]-'0')*(b[j]-'0');
c1 = r[i+j+1] + k + c[i+j+1];
r[i+j+1] = c1%10;
c[i+j] = c[i+j] + c1/10;
c[i+j+1] = 0;
}
}
r[0] = c[0];
if(r[0]!=0)
cout<<r[0];
for(i=1; i<lenR; i++)
{
cout<<r[i];
}
cout<<endl;
}
大整数乘法
最新推荐文章于 2023-10-29 14:59:02 发布