#include <iostream>
#include <cstring>
using namespace std;
void calc(char *pA, char *pB, char *pC)
{
int lenA = strlen(pA);
int lenB = strlen(pB);
int pstart = lenA+lenB-1;
int carry = 0;//进位
for(int i=lenA-1;i>=0;i--)
{
int indexC = pstart--;//保存结果的下标
for(int j=lenB-1;j>=0;j--)
{
int tmp = (pB[j]-'0')*(pA[i]-'0')+carry+(pC[indexC]-'0');
pC[indexC--] = tmp%10+'0';
carry = tmp/10;
}
pC[indexC] = carry+'0';
carry = 0;
}
}
int main()
{
char strA[64]={0};
char strB[64]={0};
cin >> strA >> strB;
char strC[strlen(strA)+strlen(strB)];
memset(strC,'0',strlen(strA)+strlen(strB));
calc(strA, strB, strC);
for(int i=0;i<strlen(strA)+strlen(strB);i++)
{
if(i==0 && strC[i]=='0')
continue;
putchar(strC[i]);
}
putchar('\n');
}
大数据乘法(c++)
最新推荐文章于 2024-07-15 13:32:43 发布