欢迎光临散文网 会员登陆 & 注册

1307:【例1.3】高精度乘法

2022-12-25 19:50 作者:欻地瓜  | 我要投稿

#include <iostream>

#include <cstring>

#include <cmath>


using namespace std;


int main() {

string a1, b1;

cin >> a1 >> b1;


int a[105] = {}, b[106] = {}, lena = a1.length(), lenb = b1.length(); // 1234, 234

for (int i = 0; i < lena; i++) {

a[lena - 1 - i] = a1[i] - 48;

}

for (int i = 0; i < lenb; i++) {

b[lenb - 1 - i] = b1[i] - 48;

}


int c[10005] = {};

for(int i=0;i<lena;i++){

int y = 0;

for(int j=0;j<lenb;j++){

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

y = c[i + j] / 10;

c[i + j] %= 10;

}

c[lenb + i] = y;

}


bool q = 0;

int lenc = lena + lenb; // 000001234560004567

for(int i=0;i<lenc;i++){

if(q || c[lenc - 1 - i]){

cout << c[lenc - 1 - i];

q = 1;

}

}


return 0;

}

答案正确

如果有疑问的朋友可以详见是视频讲解,谢谢!

1307:【例1.3】高精度乘法的评论 (共 条)

分享到微博请遵守国家法律