Website Summary Files Commits Branches @commit @diff @stats
path: root / Week06 / Exercise03.cpp
diff options
context:
space:
mode:
Commitec8ecd4dc19854007428761c330303854478201f (patch)
Author
 Syndamia <kamen@syndamia.com>
2025-11-06 19:13:54 +0200
Committer
 Syndamia <kamen@syndamia.com>
2025-11-06 19:15:07 +0200
Files662f55a328b60a70273a5e6fc564b1511da906cf /Week06/Exercise03.cpp
upp-2025-solutions-ec8ecd4dc19854007428761c330303854478201f.tar
upp-2025-solutions-ec8ecd4dc19854007428761c330303854478201f.tar.gz
upp-2025-solutions-ec8ecd4dc19854007428761c330303854478201f.zip
Parent9242ebc4c69f2c1f550ddcc0e9235f3f409554c7 (diff)
feat(Week06): Add exercises and solutions
1 files changed, 40 insertions, 0 deletions
-rw-r--r--Week06/Exercise03.cpp40
diff --git a/Week06/Exercise03.cpp b/Week06/Exercise03.cpp
new file mode 100644
index 0000000..e85d358
--- /dev/null
+++ b/Week06/Exercise03.cpp
@@ -0,0 +1,40 @@
+#include <iostream>
+
+int main() {
+ unsigned int number;
+ std::cin >> number;
+
+ const unsigned int DIGITS = 10;
+ unsigned char counts[DIGITS] = { 0 };
+
+ unsigned int temp_number = number, number_length = 0;
+ while (temp_number > 0) {
+ counts[temp_number % 10]++;
+ temp_number /= 10;
+ number_length++;
+ }
+
+ unsigned int most_common = 0;
+ for (unsigned int digit = 1; digit < DIGITS; digit++) {
+ if (counts[digit] >= counts[most_common])
+ most_common = digit;
+ }
+
+ unsigned int shifter = 1;
+ for (unsigned int i = 0; i < number_length - 1; i++) {
+ shifter *= 10;
+ }
+
+ while (shifter > 0) {
+ if ((number / shifter) % 10 == most_common)
+ temp_number *= 10;
+ else
+ temp_number = temp_number * 10 + (number / shifter) % 10;
+
+ shifter /= 10;
+ }
+
+ std::cout << temp_number << std::endl;
+
+ return 0;
+}