提交记录 18070
| 提交时间 |
评测时间 |
| 2022-10-07 13:46:40 |
2022-10-07 13:46:42 |
#include<iostream>
#include<string>
#include<cstring>
using namespace std;
int result[10001];
void multiply(string ptr1, string ptr2) {
int temp1 = ptr1.size();
int temp2 = ptr2.size();
for (int i = 0; i <temp1; i++) {
char temp3 = ptr1[i];
int temp4 = int(temp3-'0');
for (int j = 0; j <temp2; j++) {
char temp5 = ptr2[j];
int temp6 = int(temp5-'0');
int index = temp1 - i - 1 + temp2 - j - 1;
result[index] += temp4 * temp6;
}
}
}
void print(int s) {
for (int i = 0; i <= s + 8; i++) {
if (result[i] == 0)break;
int temp = result[i] / 10;
int k = i;
while (temp != 0) {
k++;
result[k] += temp % 10;
temp /= 10;
}
result[i] = result[i]%10;
}
int start = 0;
for (int i = s + 8; i >= s; i--) {
if (result[i] != 0) {
start = i;
break;
}
}
for (int i = start; i >= 0; i--) {
cout << result[i];
}
}
int main() {
int n = 0;
cin >> n;
string* ptr1 = new string[n];
string* ptr2 = new string[n];
int len1, len2;
for (int k = 0; k < n; k++) {
cin >> ptr1[k] >> ptr2[k];
}
for (int k = 0; k < n; k++) {
len1 = ptr1[k].size();
len2 = ptr2[k].size();
memset(result, 0, sizeof(result));
multiply(ptr1[k], ptr2[k]);
int start = 0;
for (int j = len1 + len2 ; j >= 0; j--) {
if (result[j] != 0) {
start = j;
break;
}
}
print(start);
cout << endl;
}
return 0;
}
| Compilation | N/A | N/A | Compile OK | Score: N/A | 显示更多 |
| Testcase #1 | 175.25 us | 36 KB | Runtime Error | Score: 0 | 显示更多 |
Judge Duck Online | 评测鸭在线
Server Time: 2026-03-16 13:48:28 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠