示例题目。

This commit is contained in:
unlockable
2023-09-28 23:28:56 +08:00
parent 83f950bff5
commit f76eebdcb3
3 changed files with 319 additions and 0 deletions

71
1001/main.cpp Normal file
View File

@@ -0,0 +1,71 @@
#include <stdio.h>
int main() {
char a[1000] = {0};
char b[1000] = {0};
char result[1001] = {0};
int a_index = 0, b_index = 0;
int result_index = 0;
char ch = getchar();
while (ch != ' ') {
a[a_index] = ch - '0';
ch = getchar();
a_index++;
}
a_index--;
ch = getchar();
while (ch != '\n' && ch != EOF && ch != ' ') {
b[b_index] = ch - '0';
ch = getchar();
b_index++;
}
b_index--;
if (a_index >= b_index) {
while (a_index >= 0) {
int current_digit = a[a_index] + b[b_index] + result[result_index];
result[result_index] = current_digit % 10;
result[++result_index] = current_digit / 10;
a_index--;
b_index--;
}
while (a_index >= 0) {
int current_digit = a[a_index] + result[result_index];
result[result_index] = current_digit % 10;
result[++result_index] = current_digit / 10;
a_index--;
}
}
else {
while (a_index >= 0) {
int current_digit = a[a_index] + b[b_index] + result[result_index];
result[result_index] = current_digit % 10;
result[++result_index] = current_digit / 10;
a_index--;
b_index--;
}
while (b_index >= 0) {
int current_digit = b[b_index] + result[result_index];
result[result_index] = current_digit % 10;
result[++result_index] = current_digit / 10;
b_index--;
}
}
if (result[result_index] == 0) {
// The hightest digit is carry. There is a possibility that this digit is 0.
result_index--;
}
while (result_index >= 0) {
printf("%d", result[result_index]);
result_index--;
}
return 0;
}