Вопрос задан 20.10.2025 в 14:43. Предмет Информатика. Спрашивает Парфенчик Алиса.

Ввести три числа, найти их сумму, произведение и среднее арифметическое. Пример: Ввести 3 числа: 4 5 7 4 + 5 + 7 = 16 4 * 5 * 7 = 140 (4 + 5 + 7) / 3 = 5.3(3) Через программу Python.

Перейти к ответам

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

Отвечает Марченко Ульяна.

Вот рабочий вариант на Python, который читает три числа, считает их сумму, произведение и среднее. Для среднего дополнительно выводит точную дробь и десятичную запись с выделением периодической части, когда она есть (например, 5.(3)):

python
from fractions import Fraction

def fmt_frac(x: Fraction) -> str: """Красиво печатает дробь: целое без знаменателя, иначе a/b.""" return str(x.numerator) if x.denominator == 1 else f"{x.numerator}/{x.denominator}"

def to_decimal_with_repeat(x: Fraction) -> str: """Преобразует Fraction в десятичную запись с выделением периода: 1/6 -> 0.1(6), 1/4 -> 0.25.""" if x == 0: return "0"

sign = "-" if x < 0 else "" n, d = abs(x.numerator), x.denominator

int_part = n // d rem = n % d if rem == 0: return f"{sign}{int_part}"

# длинное деление с запоминанием остатков для поиска периода seen = {} digits = [] repeat_from = None

while rem and rem not in seen: seen[rem] = len(digits) rem *= 10 digits.append(str(rem // d)) rem %= d

if rem == 0: frac_part = "".join(digits) return f"{sign}{int_part}.{frac_part}" else: repeat_from = seen[rem] non_rep = "".join(digits[:repeat_from]) rep = "".join(digits[repeat_from:]) # если непериодической части нет, всё равно печатаем точку перед периодом return f"{sign}{int_part}.{non_rep}({rep})"

# --- основная логика --- tokens = input("Введите 3 числа через пробел: ").split() if len(tokens) != 3: raise SystemExit("Нужно ввести ровно три значения.")

# Fraction парсит как целые, так и десятичные строки (и даже 'a/b') без ошибки округления a, b, c = map(Fraction, tokens)

s = a + b + c p = a * b * c avg = s / 3

# вывод print(f"{tokens[0]} + {tokens[1]} + {tokens[2]} = {fmt_frac(s)}") print(f"{tokens[0]} * {tokens[1]} * {tokens[2]} = {fmt_frac(p)}") print(f"({tokens[0]} + {tokens[1]} + {tokens[2]}) / 3 = {fmt_frac(avg)}{to_decimal_with_repeat(avg)}")

Пример ввода/вывода:

Введите 3 числа через пробел: 4 5 7 4 + 5 + 7 = 16 4 * 5 * 7 = 140 (4 + 5 + 7) / 3 = 16/3 ≈ 5.(3)

Если вводить дробные значения (например, 1.5 2 3.25), программа посчитает всё точно (через рациональные дроби) и корректно выведет десятичную запись среднего, отмечая период, если он есть.

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

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

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

Информатика 14.10.2025 04:57 26 Бердина Раиса
Информатика 13.10.2025 21:53 20 Кандрина Лера
Информатика 13.10.2025 20:34 13 Калинин Максим
Информатика 13.10.2025 20:27 6 Смирнов Егор
Информатика 13.10.2025 19:26 4 Макаров Максим
Информатика 13.10.2025 19:20 16 Гайнанов Эльнар
Информатика 13.10.2025 18:25 6 Bekenov Daulet
Информатика 13.10.2025 18:16 22 Александровна Вероника
Задать вопрос