🎉 恭喜! 🎉
你出色地完成了任务!这是一个不小的挑战,但你找到了正确答案。你离编程大师又近了一步!继续保持,每一步都让你更强大。
你决定观看一个很长的视频流,比如讲座录像或游戏通关过程。播放器会显示你已经观看的时间以及视频的总时长。你的任务是——编写一个程序,计算你已经观看的部分占整个视频的比例,并将这个比例表示为一个不可约分的简单分数。
例如,如果你已经观看了2小时20分钟,那么这相当于整个视频的1/3。
程序应从输入中接收两行,每行表示一个时间,格式为"HH:MM:SS":第一行是已观看时间,第二行是总时长。然后程序需要计算并输出一个比例,形式为一个包含两个数字的列表 [numerator, denominator] ,并附带一段易于理解的文字说明。
重要限制: 在求最大公约数和化简分数时,不得使用库中的内置函数(例如来自 math 库的函数)。你必须自行实现查找算法,使用 for 循环。
已观看时长(格式为“时:分:秒”的字符串)
视频总时长(格式为“时:分:秒”的字符串)
简化分数(两个整数的列表)
解释性消息(一行)
02:20:00
07:00:00
你观看了总视频的1/3。
# Функция для преобразования времени в секунды
def time_to_seconds(time_str):
# Разделяем строку времени на часы, минуты, секунды
hours, minutes, seconds = map(int, time_str.split(':'))
# Преобразуем все в секунды
total_seconds = hours * 3600 + minutes * 60 + seconds
return total_seconds
# Функция для нахождения наибольшего общего делителя (НОД)
def find_gcd(a, b):
# Используем алгоритм Евклида
while b != 0:
a, b = b, a % b
return a
# Считываем время просмотра и общее время
watched_time = input()
total_time = input()
# Преобразуем время в секунды
watched_seconds = time_to_seconds(watched_time)
total_seconds = time_to_seconds(total_time)
# Вычисляем долю просмотренного времени в виде дроби
numerator = watched_seconds
denominator = total_seconds
# Находим НОД для сокращения дроби
gcd = find_gcd(numerator, denominator)
# Сокращаем дробь
numerator //= gcd
denominator //= gcd
# Выводим результат
print(f"Вы просмотрели {numerator}/{denominator} всего видео.")
🎉 恭喜! 🎉
你出色地完成了任务!这是一个不小的挑战,但你找到了正确答案。你离编程大师又近了一步!继续保持,每一步都让你更强大。
AD
广告
正在运行代码...