第一行读入一个整数T(1≤T≤10),表示一共要计算多少次乘积。 接下来一共T行,每行两个不超过200位的整数ai,bi,表示要计算乘积的两个数,两数之间以一个空格分隔。 输出格式 一共输出T行,每行一个整数表示ai×bi的结果。 格式说明 输出时每行末尾的多余空格,不影响答案正确性 输入、输出要求 要求使用「文件输入、输出」的方式解题,输入文件为bigmul.in,输出文件为bigmul.out 样例输入
2 2 3 22222222 99999999
6 2222222177777778
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
string num1, num2;
int a1[105][15], a2[105][15], len1, len2, a[205][15], len;
int main() {
int t,m=1;
cin>>t;
for(int i=1;i<=t;i++){
cin >> num1 >> num2;
len1 = num1.size();
for (int i = 0; i < len1; i++) {
a1[i][m] = num1[len1 - 1 - i] - '0';
}
len2 = num2.size();
for (int i = 0; i < len2; i++) {
a2[i][m] = num2[len2 - 1 - i] - '0';
}
for(int i=0;i<len1;i++){
for(int j=0;j<len2;j++){
a[i+j][m]+=a1[i][m]*a2[j][m];
}
}
len=len1+len2-1;
for (int i = 0; i < len; i++) {
a[i + 1][m] += a[i][m] / 10;
a[i][m] %= 10;
}
while (a[len][m]) {
a[len + 1][m] += a[len][m] / 10;
a[len][m] %= 10;
len++;
}
for (int i = len - 1; i >= 0; i--) {
cout << a[i][m];
}
cout << endl;
m++;
}
return 0;
}
样例过了 为什么不过啊(运行错误AC 50%)