diff options
Added my solutions to Sem. 03 exercises
1 files changed, 25 insertions, 0 deletions
| -rw-r--r-- | Year 1/Programming introduction/Solutions Sem. 03/03. Remove_Middle_Digits.cpp | 25 |
diff --git a/Year 1/Programming introduction/Solutions Sem. 03/03. Remove_Middle_Digits.cpp b/Year 1/Programming introduction/Solutions Sem. 03/03. Remove_Middle_Digits.cpp new file mode 100644 index 0000000..c22a028 --- /dev/null +++ b/Year 1/Programming introduction/Solutions Sem. 03/03. Remove_Middle_Digits.cpp @@ -0,0 +1,25 @@ +#include <iostream> + +using namespace std; + +int main() +{ + int n; + cin >> n; + + int digits = 0; + for (int i = n; i != 0; i /= 10) + digits++; + + int digitsToTakeFromEachEnd = digits / 2 + (digits % 2 - 1); + int tenToTheHalf = 1; // ten to the power of digits to take from each end + + for (int i = 0; i < digitsToTakeFromEachEnd; i++) + tenToTheHalf *= 10; + + int tenToTheMiddle = (digits % 2 == 0) ? 100 : 10; // ten to the power of digits to remove from the middle + + int resultNumber = (n % tenToTheHalf) + (n / tenToTheHalf / tenToTheMiddle) * tenToTheHalf; + + cout << resultNumber << ", " << resultNumber + 1 << endl; +} |
