diff options
feat(Week05): Add exercises and solutions
1 files changed, 24 insertions, 0 deletions
| -rw-r--r-- | Week05/Exercise10.cpp | 24 |
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; +} |
