当前位置:首页 / 文章测试 / C++高精度乘法

C++高精度乘法

开始打字练习

#include<bits/stdc++.h>

using namespace std;

const int N = 205;

string s1,s2;

int a[N],b[N],c[N],la,lb,lc;

void mul(int a[],int la,int b[],int lb,int c[],int &lc)

{

lc = la + lb;

for(int i = 0;i < la; i++)

for(int j = 0;j < lb; j++)

{

int w = i + j;

c[w] += a[i] * b[j];

c[w + 1] += c[w] / 10;

c[w] %= 10;

}

if(c[lc]) lc++;

while(c[lc -1] == 0 && lc > 1) lc -- ;

}

int main()

{

cin >> s1 >> s2;

la = s1.size();

lb = s2.size();

for(int i = 0; i < la; i++)

a[i] = s1[la - i - 1]-'0';

for(int i = 0; i < lb; i++)

b[i] = s2[lb - i - 1]-'0';

mul(a,la,b,lb,c,lc);

for(int i = lc - 1; i >= 0; i--)

cout <<c[i];

return 0;

}

声明:以上文章均为用户自行发布,仅供打字交流使用,不代表本站观点,本站不承担任何法律责任,特此声明!如果有侵犯到您的权利,请及时联系我们删除。