Swap Middle Digits
Programming Basics · C++
TASK
Problem
Given a four-digit non-negative integer `n = abcd`, swap the two middle digits and print `acbd` as an integer.
EXAMPLE
Example
1234
1324
LIMITS
Constraints
1000 ≤ n ≤ 9999.
LEARN
Theory for this problem
+
Repeated division by powers of 10 and `% 10` isolate decimal digits without converting the number to a string.
Connection to “Swap Middle Digits”: here, integer `/` and `%` provide the quotient and remainder, which is useful for digit extraction and cyclic arithmetic.
NEED HELP?
Hints
+
['Extract the digits first, then combine or compare them.', 'After solving “Swap Middle Digits”, verify the algorithm on your own small example and on an allowed boundary case. Print only the required result with no extra text.']
ANSWER
Solution
+
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int n;
cin >> n;
cout << (n / 1000) * 1000 + ((n / 10) % 10) * 100 + ((n / 100) % 10) * 10 + n % 10 << '\n';
return 0;
}