Примечание:
Если к числу в двоичной системе счисления приписывать в конец цифры, то число увеличивается и никак не может уменьшится. Поэтому, n<f(n). Следовательно, перебор различных чисел, принадлежащих отрезку [90;160], можно смело ставить до 160 (можно и меньше, но лень расписывать вычисления).
ToBinary - функция перевода числа из десятичной СС в двоичную. Можно писать любой алгоритм, необязательно в точности использовать мой.
FromBinary - функция перевода числа из двоичной СС в десятичную. Можно писать любой алгоритм, необязательно в точности использовать мой.
func - функция, которая выполняет преобразования числа согласно условию (пункты 1, 2, 3, 4).
Код кажется большим только из-за процедур и begin/endов. Без них - всего то 7 строчек :). В скринах можно проверить, действительно ли 19 (40-22+1).
Пример работы:
Поделитесь своими знаниями, ответьте на вопрос:
Procedure tfrmcalc.btnplusclick(sender: tobject); begin frmcalc.lblplus.visible: =true; frmcalc.lblminus.visible: =false; frmcalc.lbldel.visible: =false; frmcalc.lblumn.visible: =false; frmcalc.lbla.caption: =(strtoint(frmcalc.edtch1.text)+strtoint(frmcalc.edtch2.text)); end; выдает ошибку : error: incompatible type for arg no. 1: got "longint", expected "ttranslatestring" подскажите кто-нибудь , в чем ошибка ставил inttostr , только тип float не пробовал .