Проще всего работать с этим числом как со строкой, и переставить местами нулевой и первый символ. Другой работать с числом, разобрать его на цифры и переставить их нужным образом.
Я реализую второй подход. Для трёхзначного числа цифры можно выделить так:
n % 10 (остаток от деления на 10) - последняя цифра
n / 10 дает целую часть от деления на 10, т.е. по сути отбрасывает последнюю цифру, тогда (n / 10) % 10 - вторая цифра
n / 100 - целая часть от деления на 100, первая цифра.
Если нужны подробности (заодно мы поймем, что этот ответ единственный), читайте дальше.
Идем с конца.
Если последняя операция - прибавление 1, то на предыдущем шаге получится 24, это не квадрат, поэтому на предыдущем шаге тоже было 1, и на еще двух тоже. Итого, за 4 операции мы получим только 21, это слишком много.
Тогда последняя операция - возведение в квадрат, на предыдущем шаге получилось 5.
5 - не квадрат, так что на этом шаге прибавляли 1, было 4.
Если 4 получили прибавлением единицы, то на предыдущем шаге было получено 3, это не квадрат, поэтому и первый шаг был прибавлением 1, и исходное число - 2, не подходит. Значит, 4 получили возведением в квадрат двойки.
2 - не квадрат, так что на этом шаге прибавляли 1, было 1.
Проще всего работать с этим числом как со строкой, и переставить местами нулевой и первый символ. Другой работать с числом, разобрать его на цифры и переставить их нужным образом.
Я реализую второй подход. Для трёхзначного числа цифры можно выделить так:
n % 10 (остаток от деления на 10) - последняя цифра
n / 10 дает целую часть от деления на 10, т.е. по сути отбрасывает последнюю цифру, тогда (n / 10) % 10 - вторая цифра
n / 100 - целая часть от деления на 100, первая цифра.
Код (C++):
#include <iostream>
int main() {
int n;
std::cin >> n;
std::cout << (n / 10) % 10 << n / 100 << n % 10;
}
2121
Объяснение:
ответ можно угадать:
(2) 1 + 1 = 2
(1) 2² = 4
(2) 4 + 1 = 5
(1) 5² = 25
Если нужны подробности (заодно мы поймем, что этот ответ единственный), читайте дальше.
Идем с конца.
Если последняя операция - прибавление 1, то на предыдущем шаге получится 24, это не квадрат, поэтому на предыдущем шаге тоже было 1, и на еще двух тоже. Итого, за 4 операции мы получим только 21, это слишком много.
Тогда последняя операция - возведение в квадрат, на предыдущем шаге получилось 5.
5 - не квадрат, так что на этом шаге прибавляли 1, было 4.
Если 4 получили прибавлением единицы, то на предыдущем шаге было получено 3, это не квадрат, поэтому и первый шаг был прибавлением 1, и исходное число - 2, не подходит. Значит, 4 получили возведением в квадрат двойки.
2 - не квадрат, так что на этом шаге прибавляли 1, было 1.