🎉 ¡Felicidades! 🎉
¡Has resuelto la tarea brillantemente! Era un reto difícil, pero encontraste la solución correcta. ¡Estás un paso más cerca de dominar la programación! Sigue así, cada etapa superada te hace más fuerte.
ProgerLib Python para todos
Decidiste ver una transmisión muy larga, grabando una conferencia o el paso de un juego. El reproductor muestra el tiempo que ya has visto y la duración total del video. Tu tarea & mdash; Escribir un programa que determine qué parte del video completo ya has visto y presente esta parte en forma de una fracción irreducible simple.
Por ejemplo, si viste 2 horas 20 minutos, eso es 1/3 de todo el video.
El programa debe recibir dos líneas de entrada, que representan el tiempo en el formato "HH: MM: SS": la primera línea & mdash; tiempo visto, la segunda & mdash; duración total. Luego, el programa debe calcular y mostrar una parte en forma de una lista de dos números & nbsp; [numerador, denominador] & nbsp; y acompañar la salida con un mensaje de texto comprensible.
Restricción importante: & nbsp; para encontrar el máximo común divisor y simplificar la fracción, no puedes usar funciones integradas de bibliotecas (por ejemplo, de la biblioteca & nbsp; math ). Debes implementar el algoritmo de búsqueda por tu cuenta usando un bucle & nbsp; for .
& nbsp;
Tiempo visto (cadena en el formato "HH:MM:SS")
Duración total del video (cadena en el formato "HH:MM:SS")
Fracción simplificada (una lista de dos enteros)
Mensaje explicativo (línea)
02:20:00
07:00:00
Has visto 1/3 del video 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} всего видео.")
🎉 ¡Felicidades! 🎉
¡Has resuelto la tarea brillantemente! Era un reto difícil, pero encontraste la solución correcta. ¡Estás un paso más cerca de dominar la programación! Sigue así, cada etapa superada te hace más fuerte.
AD
Publicidad
Ejecutando tu código...