Считаем, что число 108.75 задано в десятичной системе счисления. Поскольку нужен перевод в двоичную, восьмеричную и шестнадцатиричную системы, проще всего начать с восьмеричной. Отдельно переводим целую часть и отдельно - дробную. Целую переводим последовательным делением "в столбик": 108 | 8 - 8 28 13 | 8 - 24 - 8 4 5 1 108 делим на 8 получаем 13 и 4 в остатке. 13 делим на 8 получаем 1 и 5 в остатке. Теперь записываем частное и остатки в обратном порядке, т.е. 1-5-4. 108(10)=154(8). Для перевода дробной части производим умножние на 8 пока или не получится нулевого остатка, или не будет получено нужное количество разрядов числа. 0.75 * 8
б.00 Мы получили нулевой остаток, 0.75(10)=0.6(8) Объединяем найденные числа: 108.75(10)=154.6(8)
Для перехода к двоичной системе достаточно каждую восьмеричную цифру заменить ее двоичным представлением (тремя двоичными разрядами) 154.6(8)=001 101 100 . 110(2) Для перехода к шестнадцатиричной системе каждые четыре двоичных разряда заменяем шестнадцатиричной цифрой. Недостающие разряды приписываем в виде нулей слева в целой части и справа - в дробной. 1101100.110(2)= 0110 1100 . 1100(2) = 6С.С(16).
Поскольку нужен перевод в двоичную, восьмеричную и шестнадцатиричную системы, проще всего начать с восьмеричной. Отдельно переводим целую часть и отдельно - дробную. Целую переводим последовательным делением "в столбик":
108 | 8
- 8
28 13 | 8
- 24 - 8
4 5 1
108 делим на 8 получаем 13 и 4 в остатке. 13 делим на 8 получаем 1 и 5 в остатке.
Теперь записываем частное и остатки в обратном порядке, т.е. 1-5-4.
108(10)=154(8).
Для перевода дробной части производим умножние на 8 пока или не получится нулевого остатка, или не будет получено нужное количество разрядов числа.
0.75
* 8
б.00
Мы получили нулевой остаток, 0.75(10)=0.6(8)
Объединяем найденные числа: 108.75(10)=154.6(8)
Для перехода к двоичной системе достаточно каждую восьмеричную цифру заменить ее двоичным представлением (тремя двоичными разрядами)
154.6(8)=001 101 100 . 110(2)
Для перехода к шестнадцатиричной системе каждые четыре двоичных разряда заменяем шестнадцатиричной цифрой. Недостающие разряды приписываем в виде нулей слева в целой части и справа - в дробной.
1101100.110(2)= 0110 1100 . 1100(2) = 6С.С(16).
var
i:integer;
begin
for i:=1 to 10000 do // по условиям задачи i:=1 to 999
if (i mod 43 = 41) and (i mod 47 = 43) then
writeln(i);
end.
Результаты вывода:
1030
3051
5072
7093
9114
Так что минимальное число, удовлетворяющее требованиям, 1030, но оно не трехзначное
Вот более продвинутый алгоритм, делающий то же самое:
var
n43:integer;
begin
n43:=127;
repeat
n43:=n43+43;
until (n43 mod 43 = 41) and (n43 mod 47 = 43); //добавить and (n43<1000)
writeln(n43)
end.
Результат вывода:
1030