🎉 Parabéns! 🎉
Você resolveu a tarefa brilhantemente! Foi difícil, mas você encontrou a solução certa. Você está um passo mais perto de dominar a programação! Continue assim.
ProgerLib Python para todos
Você decidiu assistir a uma transmissão muito longa, uma gravação de uma palestra ou a passagem de um jogo. O player exibe o tempo que você já assistiu e a duração total do vídeo. Sua tarefa — escrever um programa que determine qual fração do vídeo inteiro você já assistiu e apresente essa fração na forma de uma fração irredutível.
rnPor exemplo, se você assistiu 2 horas e 20 minutos, isso corresponde a 1/3 de todo o vídeo.
rn O programa deve receber duas linhas como entrada, representando o tempo no formato "HH:MM:SS": a primeira linha — tempo assistido, a segunda — duração total. Em seguida, o programa deve calcular e exibir a fração na forma de uma lista de dois números [numerador, denominador] e acompanhar a saída com uma mensagem de texto compreensível.
Restrição importante: para encontrar o máximo divisor comum e simplificar a fração, você não pode usar funções internas de bibliotecas (por exemplo, da biblioteca math ). Você deve implementar o algoritmo de busca por conta própria usando um laço for .
Tempo assistido (string no formato "HH:MM:SS")
Duração total do vídeo (string no formato "HH:MM:SS")
Fração simplificada (uma lista de dois inteiros)
Mensagem explicativa (linha)
02:20:00
07:00:00
Você assistiu a 1/3 do vídeo total.
# Функция для преобразования времени в секунды
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} всего видео.")
🎉 Parabéns! 🎉
Você resolveu a tarefa brilhantemente! Foi difícil, mas você encontrou a solução certa. Você está um passo mais perto de dominar a programação! Continue assim.
AD
Publicidade
Executando seu código...