При переводе числа из десятичной системы счисления в другую нужно поделить число на основание системы счисления, в которую переводишь, и записать остаток. Результат деления снова поделить на основание системы счисления, в которую переводишь, и записать остаток. Продолжать до тех пор, пока результат не станет меньше основания с. сч., в которую переводишь. Тогда нужго записать последнее оставшееся число (то, которое меньше основания...) и все остатки в обратном порядке. Получившаяся последовательность чисел — ответ.
Решение примеров из вопроса см. в приложенном фото.
Если лень перебирать вручную, можно воспользоваться программой
var k,l,r,x,f:integer; begin f := 3001; l := 0; r := 65534; x := (l + r) div 2; k := 1; while (x <> f) and (l < r) do begin writeln(k,' ',l,' ',r,' ',x); k := k + 1; if f < x then r := x - 1 else l := x + 1; x := (l + r) div 2 end; writeln(k,' ',l,' ',r,' ',x); end.
Объяснение:
При переводе числа из десятичной системы счисления в другую нужно поделить число на основание системы счисления, в которую переводишь, и записать остаток. Результат деления снова поделить на основание системы счисления, в которую переводишь, и записать остаток. Продолжать до тех пор, пока результат не станет меньше основания с. сч., в которую переводишь. Тогда нужго записать последнее оставшееся число (то, которое меньше основания...) и все остатки в обратном порядке. Получившаяся последовательность чисел — ответ.
Решение примеров из вопроса см. в приложенном фото.