Top.Mail.Ru
Ответы

Помогите по информатике пожалуйста 9 класс!

не знаю как записать ответ правильно и решение

По дате
По рейтингу
Аватар пользователя
Мастер
1нед
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
# Ввод: три строки - число, единица (КБ/МБ/ГБ/ТБ), носитель
# Вывод: одно целое число - сколько носителей потребуется

import sys
from decimal import Decimal, getcontext, ROUND_CEILING

getcontext().prec = 40  # чтобы не было погрешностей при делении

def main():
    size_line = sys.stdin.readline()
    unit_line = sys.stdin.readline()
    media_line = sys.stdin.readline()

    if not size_line or not unit_line or not media_line:
        return

    # Число может быть записано с запятой - заменим на точку
    size = Decimal(size_line.strip().replace(",", "."))
    unit = unit_line.strip().upper()
    media = media_line.strip().lower().replace("ё", "е")

    # Двоичные множители
    k = Decimal(1024)
    units = {
        "КБ": k,
        "МБ": k**2,
        "ГБ": k**3,
        "ТБ": k**4,
    }

    # Вместимости в байтах
    capacities = {
        "перфокарта": Decimal(80),
        "дискета": Decimal(1440) * k,           # 1 474 560 байт
        "лазерный диск": Decimal(750) * (k**2), # 750 МБ
        "жесткий диск": Decimal(2) * (k**4),    # 2 ТБ
    }

    data_bytes = size * units[unit]
    cap_bytes = capacities[media]

    # Количество носителей - вверх до целого
    needed = (data_bytes / cap_bytes).to_integral_value(rounding=ROUND_CEILING)
    print(int(needed))

if __name__ == "__main__":
    main()
Аватар пользователя
Профи
1нед

привет, моу не дорого тебе сделать)