Предмет: Информатика, автор: Kolokolchic22222

Python

Фёдор решил познакомить сестру с удивительными свойствами цифр и рассказать ей о системах счисления.

Он написал функцию, которая показывает, как будет выглядеть развернутая запись числа в позиционной системе счисления.

Аргументы функции: число - основание системы счисления (основание системы счисления - 2 <= var_name <= 10) и неограниченное количество цифр числа по порядку убывания степеней.

Функция num_form(var_name, *coeffs) возвращает в виде текста развернутую форму числа.

Пример


Ввод

2 1 0 0 1 1 0

Вывод

1*2^5 + 0*2^4 + 0*2^3 + 1*2^2 + 1*2^1 + 0*2^0

Примечания


Функция должна обязательно называться num_form.

Ваше решение должно содержать только функции.

В решении не должно быть вызовов требуемых функций
Код ниже не подходит, может у кого-нибудь есть мысли?
def num_form(var_name, *coeffs):
s =''
for i in range(len(coeffs)):
s += f'{coeffs[i]}' + '*' + f'{var_name}' + '^' + f'{len(coeffs)-1-i}' + '+'

return s[:-11]


ametovsalim2000: везёт людям python изучают а мы какие изображения бывают =(

Ответы

Автор ответа: xmart1n
0

Ответ:

def num_form(var_name, *coeffs):

   # определяем степень, до которой нужно развернуть число

   max_power = len(coeffs) - 1

   

   # создаем список, содержащий каждый слагаемый в форме a * b^c

   terms = []

   for i in range(len(coeffs)):

       if coeffs[i] != 0:

           term = "{}*{}^{}".format(coeffs[i], var_name, max_power - i)

           terms.append(term)

   

   # объединяем все слагаемые в строку с плюсами и пробелами между ними

   output = " + ".join(terms)

   

   return output

Объяснение:

Функция принимает первым аргументом основание системы счисления и произвольное количество коэффициентов, которые будут использоваться для развертывания числа. Внутри функции мы сначала определяем максимальную степень числа, до которой нужно развернуть. Затем мы создаем список слагаемых, которые будут входить в развернутую форму числа. Мы проходим по каждому коэффициенту, и если коэффициент не равен нулю, добавляем слагаемое в список. В каждом слагаемом мы используем форму a * b^c, где a - коэффициент, b - основание системы счисления, а c - степень. Затем мы объединяем все слагаемые в строку с помощью метода join(), используя "+" как разделитель.

Пример использования:
print(num_form(2, 1, 0, 0, 1, 1, 0))

# Output: 1*2^5 + 0*2^4 + 0*2^3 + 1*2^2 + 1*2^1 + 0*2^0


kocou001: пишет ошибку(
Похожие вопросы
Предмет: География, автор: cjcb12372