Бегаем циклом по числу, деля его на 10 на каждой итерации, пока число не уменьшится до нуля.
Таким образом пробежим по всем разрядам, начиная с младшего.
Разряд (степень десятки) будем сохранять отдельно для четных и нечетных чисел.
Также по отдельности будем суммировать четные и нечетные разряды.
На каждой итерации получаем значение разряда (это остаток от деления на 10)
Если цифра нечетная, умножаем на текущую степень и суммируем с нечетными числами, иначе то же самое с четными.
По окончанию цикла у нас будет зафиксирована разрядность получившегося нечетного числа (нечетное число у нас по условию будет в младших разрядах результат). Умножаем четное число на десятку в этой степени и суммируем с нечетным числом.
Профит!
Наверное не очень понятно объясняю. Покажу реализацию на javascript:
кодlet number = 12345;
let resultEven = 0;
let resultOdd = 0;
let nEven = 0; // разрядность числа (нечетные числа)
let nOdd = 0; // разрядность числа (четные числа)
while (number > 0) {
let digit = number % 10;
if (digit % 2 !== 0) {
resultEven += digit * Math.pow(10, nEven++);
} else {
resultOdd += digit * Math.pow(10, nOdd++);
}
number = Math.floor(number / 10);
}
let result = resultEven + resultOdd * Math.pow(10, nEven);