From ffd032af77620ed502e5633ab77082e3efc62ea0 Mon Sep 17 00:00:00 2001 From: sohyundoh Date: Fri, 25 Mar 2022 23:35:56 +0900 Subject: [PATCH] Update 10757.cpp --- .../10757.cpp" | 42 +++++++++---------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git "a/[\353\270\214\353\243\250\355\212\270\355\217\254\354\212\244] 3\354\233\224 24\354\235\274/10757.cpp" "b/[\353\270\214\353\243\250\355\212\270\355\217\254\354\212\244] 3\354\233\224 24\354\235\274/10757.cpp" index 2a48f18..b70e3e3 100644 --- "a/[\353\270\214\353\243\250\355\212\270\355\217\254\354\212\244] 3\354\233\224 24\354\235\274/10757.cpp" +++ "b/[\353\270\214\353\243\250\355\212\270\355\217\254\354\212\244] 3\354\233\224 24\354\235\274/10757.cpp" @@ -10,28 +10,28 @@ int main() { reverse(a.begin(), a.end()); reverse(b.begin(), b.end()); int round; - int result[10000]; + long long result[10000]; if (a_size > b_size) { - result[0] = ((int)a[0] + (int)b[0]) % 10; - round = ((int)a[0] + (int)b[0]) / 10; - for (int i = 1; i < a_size; i++) { + result[0] = ((int)(a[0] - '0' + b[0] - '0')) % 10; + round = ((int)(a[0] - '0' + b[0] - '0')) / 10; + for (int i = 1; i < a_size + 1; i++) { if (i <= b_size) { - result[i] = ((int)a[i] + (int)b[i] + round) % 10; - round = ((int)a[i] + (int)b[i] + round) / 10; + result[i] = ((int)(a[i] - '0' + b[i] - '0') + round) % 10; + round = ((int)(a[i] - '0' + b[i] - '0') + round) / 10; } else { - result[i] = ((int)a[i] + round) % 10; - round = ((int)a[i] + round) / 10; + result[i] = ((int)(a[i] - '0') + round) % 10; + round = ((int)(a[i] - '0') + round) / 10; } } - if (result[a_size] > 0) { - reverse(result, result + a_size); + if (result[a_size + 1] > 0) { + reverse(result, result + a_size + 1); for (int i = 0; i < (a_size + 1); i++) { cout << result[i]; } } else { - reverse(result, result + a_size - 1); + reverse(result, result + a_size); for (int i = 0; i < (a_size); i++) { cout << result[i]; } @@ -39,26 +39,26 @@ int main() { } else { - result[0] = ((int)a[0] + (int)b[0]) % 10; - round = ((int)a[0] + (int)b[0]) / 10; - for (int i = 1; i < b_size; i++) { + result[0] = ((int)(a[0] - '0' + b[0] - '0')) % 10; + round = ((int)(a[0] - '0' + b[0] - '0')) / 10; + for (int i = 1; i < b_size + 1; i++) { if (i <= a_size) { - result[i] = ((int)a[i] + (int)b[i] + round) % 10; - round = ((int)a[i] + (int)b[i] + round) / 10; + result[i] = ((int)((a[i] - '0') + (b[i] - '0')) + round) % 10; + round = ((int)((a[i] - '0') + (b[i] - '0')) + round) / 10; } else { - result[i] = ((int)b[i] + round) % 10; - round = ((int)b[i] + round) / 10; + result[i + 1] = ((int)(b[i] - '0') + round) % 10; + round = ((int)(b[i] - '0') + round) / 10; }; } - if (result[b_size] > 0) { - reverse(result, result + b_size); + if (result[b_size + 1] > 0) { + reverse(result, result + b_size + 1); for (int i = 0; i < (b_size + 1); i++) { cout << result[i]; } } else { - reverse(result, result + b_size - 1); + reverse(result, result + b_size); for (int i = 0; i < (b_size); i++) { cout << result[i]; }