Примечание:
Если к числу в двоичной системе счисления приписывать в конец цифры, то число увеличивается и никак не может уменьшится. Поэтому, n<f(n). Следовательно, перебор различных чисел, принадлежащих отрезку [90;160], можно смело ставить до 160 (можно и меньше, но лень расписывать вычисления).
ToBinary - функция перевода числа из десятичной СС в двоичную. Можно писать любой алгоритм, необязательно в точности использовать мой.
FromBinary - функция перевода числа из двоичной СС в десятичную. Можно писать любой алгоритм, необязательно в точности использовать мой.
func - функция, которая выполняет преобразования числа согласно условию (пункты 1, 2, 3, 4).
Код кажется большим только из-за процедур и begin/endов. Без них - всего то 7 строчек :). В скринах можно проверить, действительно ли 19 (40-22+1).
Пример работы:
Поделитесь своими знаниями, ответьте на вопрос:
Для записи текста используется 128-символьный алфавит. каждая страница содержит 40 строк по 60 символов в строке. какой объем информации содержат 15 страниц текста?
запишем условие: N=128, строк=40, символы=60, I(15)-?
решение: вычислим количество символов на одной странице
K=40*60=2400
Из формулы мощности алфавита найдем вес одного символа
N=2^i, 128=2^i, 2^7=2^i, i=7 бит
вычислим информационный объем 15 страниц текста
I(15)=2400*7=16800 бит это и есть ответ