再打高精度乘法时遇到了一个问题,什么东西也输不出来
#include<bits/stdc++.h>
using namespace std;
string cheng(string x, string y){
cout << 1;//检测,可这个“1”都输不出来!!
int xn = x.size(), yn = y.size();
vector <int> a, b;
for(int i = 0;i < xn;i++) a.insert(a.begin(), (int)(x[i]-'0'));
for(int i = 0;i < yn;i++) b.insert(b.begin(), (int)(y[i]-'0'));
for(int i = 0;i < abs(xn-yn);i++){
if(xn > yn) b.push_back(0);
else a.push_back(0);
}
int c[4000005]; memset(c, 0, sizeof(c));
for(int i = 0;i < xn;i++){
for(int j = 0;j < yn;i++){
c[j+i] += a[i]*b[j];
if(c[j+i] >= 10)
c[j+i] %= 10, c[j+i+1] = c[j+i+1]+c[j+i]/10;
}
}
string k = ""; bool flag = false;
for(int i = xn + yn;i >= 0;i--){
if(!flag && c[i] != 0){
k = k + (char)(c[i]+'0'), flag = true;
}
}
return k;
}
int main(){
string a, b;
cin >> a >> b;
cout << cheng(a, b);
return 0;
}
不知哪出了问题,萌新求助