Как решить подобную задачу на Python? Достаточно просто алгоритм. Сама задача вот: Даны два числа: a и b (вводятся в десятичной системе счисления). Найдите значение числа a/b, записанного в k-ичной системе счисления. Если a/b — периодическая дробь, то период следует заключить в скобки. Пример входных данных: 1 2 8 1 12 10 Пример выходных данных: 0.4 0.08(3)
Для решения данной задачи можно воспользоваться следующим алгоритмом на Python:
def divide_decimal_to_k(a, b, k): integer_part = str(a // b) fraction_part = [] remainders = [] a %= b while a != 0 and a not in remainders: remainders.append(a) a *= k fraction_part.append(str(a // b)) a %= b if a != 0: period_start = remainders.index(a) fraction_part = fraction_part + [')'] result = integer_part + '.' + ''.join(fraction_part) return result a, b, k = map(int, input().split()) result = divide_decimal_to_k(a, b, k) print(result)
Для решения данной задачи можно воспользоваться следующим алгоритмом на Python:
def divide_decimal_to_k(a, b, k):integer_part = str(a // b)
fraction_part = []
remainders = []
a %= b
while a != 0 and a not in remainders:
remainders.append(a)
a *= k
fraction_part.append(str(a // b))
a %= b
if a != 0:
period_start = remainders.index(a)
fraction_part = fraction_part + [')']
result = integer_part + '.' + ''.join(fraction_part)
return result
a, b, k = map(int, input().split())
result = divide_decimal_to_k(a, b, k)
print(result)
Примеры использования:
Введите: 1 2 8Вывод: 0.4
Введите: 1 12 10
Вывод: 0.08(3)
Этот алгоритм сначала вычисляет целую часть от деления, затем начинает вычислять дробную часть, при необходимости заключает период в скобки.