Проще всего работать с этим числом как со строкой, и переставить местами нулевой и первый символ. Другой работать с числом, разобрать его на цифры и переставить их нужным образом.
Я реализую второй подход. Для трёхзначного числа цифры можно выделить так:
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;
}
-32768 .. 32768 (кроме 0)
Объяснение:
16 битами можно закодировать
различных значений.
По условию кодируются положительные и отрицательные числа в равном количестве, так что и тех и других половина, по 65536 : 2 = 32768 чисел.
Получается диапазон -32768 .. 32768, из которого убрали нуль.
Обычно всё же ноль в представлениях целых чисел есть. Если использовать прямой код для записи чисел, то получится как раз одинаковое количество положительных и отрицательных чисел, но два нуля (положительный и отрицательный). Для этого случая диапазон будет -32767..32767.
Поделитесь своими знаниями, ответьте на вопрос: