Числа и ввод · 33 из 37
Дюймы прораба
Валерий Степанович — старой закалки: трубы и фитинги он считает в дюймах, дробями: «3/4», «1 1/2», «5/8». Ему нужно сложить отрезки и записать итог так же — «2 7/8», а не «2.875».
Модулей он не признаёт: «Дроби складывают руками. Общий знаменатель — и вперёд».
Что сделать
Сложите отрезки труб в дюймах и запишите итог дробью — как прораб.
Что приходит
otrezki— список длин строками:"3/4","1 1/2","5"; дробь бывает и неправильной
Что вернуть
Сумму строкой — смешанной дробью с несократимой дробной частью: "1 7/8", "7/8" или "3"; пусто — "0".
Допишите функцию slozhit в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
Ограничение
Без
import
Обходные пути — тоже нарушение: eval, exec, getattr, имена с двойным подчёркиванием, импорт os, subprocess и им подобных.
¾ и 1⅛: общий знаменатель 8, это 6/8 и 9/8 — вместе 15/8, то есть одна целая и семь восьмых: "1 7/8".
slozhit(["3/4", "1 1/8"])
'1 7/8'
Каждая длина — «целое», «числитель/знаменатель» или «целое числитель/знаменатель»; между частями один или несколько пробелов, по краям тоже могут быть. Числа целые, неотрицательные, знаменатель больше нуля; дробь может быть неправильной: «9/8».
Ответ: «2 7/8», если есть и целая часть, и дробь; «7/8» — если целой нет; «3» — если дроби нет. Дробь в ответе несократима. Пустой список или одни нули — «0».
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.