• 1
    数据输入输出
    • 任务
  • 2
    条件语句
    • 任务
  • 3
    for循环
    • 任务
  • 4
    字符串
    • 任务
  • 5
    while循环
    • 任务
  • 6
    列表
    • 任务
  • 7
    二维数组
    • 任务
  • 8
    字典
    • 任务
  • 9
    集合
    • 任务
  • 10
    函数与递归
    • 任务
  • к

课程 4. Lines

难度:

任务«视频»

💻 Python

你决定观看一个很长的视频流,比如讲座录像或游戏通关过程。播放器会显示你已经观看的时间以及视频的总时长。你的任务是——编写一个程序,计算你已经观看的部分占整个视频的比例,并将这个比例表示为一个不可约分的简单分数。

例如,如果你已经观看了2小时20分钟,那么这相当于整个视频的1/3。

程序应从输入中接收两行,每行表示一个时间,格式为"HH:MM:SS":第一行是已观看时间,第二行是总时长。然后程序需要计算并输出一个比例,形式为一个包含两个数字的列表   [numerator, denominator]  ,并附带一段易于理解的文字说明。

重要限制:   在求最大公约数和化简分数时,不得使用库中的内置函数(例如来自   math   库的函数)。你必须自行实现查找算法,使用   for   循环。

 

输入格式

已观看时长(格式为“时:分:秒”的字符串)
视频总时长(格式为“时:分:秒”的字符串)

输出格式

简化分数(两个整数的列表)
解释性消息(一行)

示例

输入

02:20:00
07:00:00

输出

你观看了总视频的1/3。

提示

There will be no clue here, decide for yourself!

main.py
测试 1
测试 2
测试 3
测试 4
测试 5
测试 6
测试 7
测试 8
测试 9
测试 10
开发者解答
# Функция для преобразования времени в секунды
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

广告

red-snake blue-snake green-snake

正在运行代码...

AI助手

你好!我是你的编程助手。随时向我提问关于 Python 的问题——我可以解释函数、方法,并帮助你完成当前任务!