直接采用乘法列竖式模拟运算
2024-03-21 15:42:06
发布于:浙江
97阅读
0回复
0点赞
本题比较简单,直接采用乘法列竖式模拟运算即可。
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
string x , y;
int a[50010] , b[50010] , c[50010];
int main()
{
cin >> x >> y;
int l1=x.size() , l2 = y.size();
for(int i = 1 ; i <= l1 ; i++){
a[i] = x[l1-i]-'0';
}
for(int i = 1 ; i <= l2 ; i++){
b[i] = y[l2-i]-'0';
}
for(int i = 1 ; i <= l1 ; i++){
for(int j = 1 ; j <= l2 ; j++){
c[i+j-1] += a[i] * b[j];
}
}
int l = l1 + l2;
for(int i = 1 ; i <= l - 1 ; ++i){
if(c[i] > 9){
c[i+1] += c[i] / 10;
c[i] %= 10;
}
}
while(c[l] == 0 && l > 1){
l--;
}
for(int i = l ; i >= 1 ; i--){
cout << c[i];
}
return 0;
}
这里空空如也
有帮助,赞一个