Проще всего работать с этим числом как со строкой, и переставить местами нулевой и первый символ. Другой работать с числом, разобрать его на цифры и переставить их нужным образом.
Я реализую второй подход. Для трёхзначного числа цифры можно выделить так:
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.
Поделитесь своими знаниями, ответьте на вопрос:
Записать в развернутой форме следующие числа 1. 12345, 6789 10 2. 1000110, 1101 2 3. 123, 706 8 4. 10212 3 5. 12a5b0f, 5e 16 6. 1143, 121 5 7. 555, 55 6 8. 1203, 1 4 записать в свернутой форме 1. 4·10 3 +0·10 2 +2·10 1 +9·10 0 +8·10 -1 2. 1·2 5 +1·2 4 +1·2 3 +0·2 2 + 1·2 1 +1·2 0 +1·2 -1 +1·2 -2 3. 6·16 3 +10·16 2 +0·16 1 +12·16 0 +1·16 -1 4. 1·5 4 +3·5 3 + 0 · 5 2+ 4·5 1 +0 · 5 0+ 0 · 5 -1+ 1·5 -2