Loading...

On time for the exam

Здравейте,

не мога да хвана в това решение защо има 93 от сто :(

Ако някой има идея - ще се радвам на помощ. Реших я и по друг начин, но тук ме дразни че не виждам.

 

exam_hours = int(input())
exam_minutes = int(input())
arrival_hours = int(input())
arrival_minutes = int(input())

total_exam_min = exam_hours * 60 + exam_minutes
total_arrival_min = arrival_hours * 60 + arrival_minutes
hours_left = 0
min_left = 0

diff = abs(total_exam_min - total_arrival_min)

if total_arrival_min > total_exam_min:
    print("Late")
    if diff >= 60:
        hours_left = diff // 60
        min_left = diff % 60
        if min_left < 10:
            print(f"{hours_left}:0{min_left} hours after the start")
        else:
            print(f"{hours_left}:{min_left} hours after the start")
    else:
        if diff < 10:
            print(f"0{diff} minutes after the start")
        else:
            print(f"{diff} minutes after the start")
elif total_arrival_min == total_exam_min:
    print("On time")

elif total_arrival_min < total_exam_min:
    if diff <= 30:
        print("On time")
        print(f"{diff} minutes before the start")
    else:
        if diff >= 60:
            hours_left = diff // 60
            min_left = diff % 60
            if min_left < 10:
                print("Early")
                print(f"{hours_left}:0{min_left} hours before the start")
            else:
                print("Early")
                print(f"{hours_left}:{min_left} hours before the start")
        else:
            print("Early")
            print(f"{diff} minutes before the start")
Тагове:
0
grishko0o avatar grishko0o 35 Точки
Best Answer

Здравейте, 

"грешката" e в ред 22. Със сегашния вид, ако закъснее с една минута ще има вид : 

01 minutes after the start

а би трябвало да изглежда: 

1 minutes after the start. 

С други думи ред 22 : 

else:
        if diff < 10:
            print(f"0{diff} minutes after the start")
        else:
            print(f"{diff} minutes after the start")

става само 

else: print(f"{diff} minutes after the start")

Както е спазено в ред 44 : 

 else:
            print("Early")
            print(f"{diff} minutes before the start")

 

 

 

0

Ех :)

знаех си, че е някоя дреболия...

Много много благодаря за отделеното време и помощта!

0
mark79 avatar mark79 639 Точки

Здравей,

ето едно малко по-кратко решение ..

exam_hour = int(input())
exam_minute = int(input())
arrive_hour = int(input())
arrive_minute = int(input())

exam_total_minutes = exam_hour * 60 + exam_minute
arrive_total_minutes = arrive_hour * 60 + arrive_minute

if arrive_total_minutes > exam_total_minutes:
    print("Late")
elif exam_total_minutes - arrive_total_minutes <= 30:
    print("On time")
else:
    print("Early")

result = abs(exam_total_minutes - arrive_total_minutes)
if exam_total_minutes - arrive_total_minutes > 0:
    if result < 60:
        print(f"{result} minutes before the start")
    else:
        print(f"{result // 60}:{result % 60:02d} hours before the start")
elif arrive_total_minutes - exam_total_minutes > 0:
    if result < 60:
        print(f"{result} minutes after the start")
    else:
        print(f"{result // 60}:{result % 60:02d} hours after the start")

Поздрави :)

0

Благодаря :)

Аз я реших по друг начин...интересно ми беше тук къде бъркам, понеже не виждам. Дава ми 93 от 100.

0
mark79 avatar mark79 639 Точки

Здравей,

просто показах друг подход, заради многото код, които се повтаряше при теб.

Поздрави :)

0
05/10/2019 20:34:52
omnilog avatar omnilog 3 Точки

Вероятно комичен въпрос, но каква е ролята на оцветеното от кода {result % 60:02d}?

0
omnilog avatar omnilog 3 Точки

Здравей! 

Не съм стигнал до тази задача, но ми беше интересно и си мисля какво би станало, ако намалиш броя на else-те?
 

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.