Вопрос задан 17.07.2023 в 13:54. Предмет Информатика. Спрашивает Кожуренко Ангелина.

Задача: Напишите рекурсивную процедуру, которая переводит число из десятичной системы счисления в

восьмеричную систему. Помогите решить этот алгоритм рекурсивно(без циклов) def printOct(n): global b b = '' while n > 0: b = str(n % 8) + b n = n // 8 return b n = int(input()) print(printOct(n))
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Шустров Никита.

Ответ:

a=[]

def printOct(n):

n1=n%8

a.append(n1)

n//=8

if n>0:

printOct(n)

n=int(input())

printOct(n)

s=""

for i in range(len(a)):

s=s+str(a[i])

print(s)

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Конечно, я могу помочь вам решить эту задачу рекурсивно. Вот рекурсивная процедура, которая переводит число из десятичной системы счисления в восьмеричную:

python
def decimal_to_octal(n): if n == 0: return '0' elif n < 0: return '-' + decimal_to_octal(-n) elif n < 8: return str(n) else: return decimal_to_octal(n // 8) + str(n % 8) n = int(input("Введите число в десятичной системе: ")) octal = decimal_to_octal(n) print("Число в восьмеричной системе: " + octal)

Эта рекурсивная процедура decimal_to_octal принимает число n и возвращает его представление в восьмеричной системе. Она использует следующую логику:

  • Если число n равно 0, возвращаем строку '0'.
  • Если число n отрицательное, возвращаем знак минус и результат применения рекурсивной процедуры к абсолютному значению n.
  • Если число n меньше 8, возвращаем его строковое представление.
  • Иначе, рекурсивно вызываем процедуру decimal_to_octal для n // 8 (целая часть от деления n на 8) и конкатенируем с остатком от деления n на 8, преобразованным в строку.

Пример использования:

Введите число в десятичной системе: 42 Число в восьмеричной системе: 52

Пожалуйста, обратите внимание, что эта рекурсивная процедура может обрабатывать отрицательные числа и возвращает строковое представление числа в восьмеричной системе.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос