Website Summary Files Commits Branches @commit @diff @stats
path: root / Week05 / Exercise10.cpp
diff options
context:
space:
mode:
Commit9242ebc4c69f2c1f550ddcc0e9235f3f409554c7 (patch)
Author
 Syndamia <kamen@syndamia.com>
2025-11-01 20:27:21 +0200
Committer
 Syndamia <kamen@syndamia.com>
2025-11-01 20:27:21 +0200
Files8a49b14236dca88758fa72781ef15144e9cbc214 /Week05/Exercise10.cpp
upp-2025-solutions-9242ebc4c69f2c1f550ddcc0e9235f3f409554c7.tar
upp-2025-solutions-9242ebc4c69f2c1f550ddcc0e9235f3f409554c7.tar.gz
upp-2025-solutions-9242ebc4c69f2c1f550ddcc0e9235f3f409554c7.zip
Parent69de8ecfb2df52a6a4ae9d75f6a018ae380cca05 (diff)
feat(Week05): Add exercises and solutions
1 files changed, 24 insertions, 0 deletions
-rw-r--r--Week05/Exercise10.cpp24
diff --git a/Week05/Exercise10.cpp b/Week05/Exercise10.cpp
new file mode 100644
index 0000000..64fbb4a
--- /dev/null
+++ b/Week05/Exercise10.cpp
@@ -0,0 +1,24 @@
+#include <iostream>
+
+int main() {
+ const unsigned int DIGITS = 8;
+ const unsigned int WEIGHTS[DIGITS] = { 8, 6, 4, 2, 3, 5, 9, 7 };
+
+ unsigned int serial_number;
+ std::cin >> serial_number;
+
+ unsigned int sum = 0;
+ for (int i = DIGITS - 1; i >= 0; i--) {
+ sum += (serial_number % 10) * WEIGHTS[i];
+ serial_number /= 10;
+ }
+
+ unsigned int control_digit = 11 - sum % 11;
+
+ if (control_digit == 10) control_digit = 0;
+ else if (control_digit == 11) control_digit = 5;
+
+ std::cout << control_digit << std::endl;
+
+ return 0;
+}