Поскольку функция рекурсивно вызывает себя и при каждом вызове выводит переданное число, удобно будет записать выводимые числа в столбик, обозначая глубину стека (количество рекурсивных вызовов) и произойдет ли вызов. Очередная пара рекуррентных вызовов происходит при передаче числа больше или равного четырём.
1. Шестнадцатиричное представление переводим в десятичное. Записываем 4A98 в расширенной форме по степеням основания (т.е. 16 в нашем случае): 2. Шестнадцатиричное представление переводим в восьмеричное. Поскольку , перевод удобно сделать через промежуточную двоичную систему. Каждую шестнадцатиричную цифру заменяем четырьмя двоичными цифрами (так называемой тетрАдой). 0100 1010 1001 1000 . 1011 1100 0010 (2) Разбиваем двоичное число на триАды (по три разряда) влево и вправо от десятичной точки и каждую триаду заменяем восьмеричной цифрой (они по написанию совпадают с десятичными). Если разрядов для триады не хватает, дополняем их нулями слева для целой части и справа для дробной. 100101010011000.10111100001 (2)= 100 101 010 011 000.101 111 000 010= 45230.5702(8)
6251413
Объяснение:
Поскольку функция рекурсивно вызывает себя и при каждом вызове выводит переданное число, удобно будет записать выводимые числа в столбик, обозначая глубину стека (количество рекурсивных вызовов) и произойдет ли вызов. Очередная пара рекуррентных вызовов происходит при передаче числа больше или равного четырём.
0: F(6) -> 6 (вызов произойдёт)
1: F(2) -> 2 (вызов не произойдёт)
1: F(5) -> 5 (вызов произойдёт)
2: F(1) -> 1 (вызов произойдёт)
2: F(4) -> 4 (вызов произойдёт)
3: F(1) -> 1 (вызов не произойдёт)
3: F(3) -> 3 (вызов не произойдёт)