Форум сайта python.su
0
Задача:
После прохождения каждой математической комнаты игроку начисляются очки. Максимально можно получить 100 000 очков за прохождение одной комнаты. Для этого нужно выйти из комнаты меньше, чем за одну минуту. После истечения этого времени каждая секунда, проведенная в комнате, уменьшает награду за прохождение.
Составь программу, которая сможет рассчитать количество очков, заработанных игроком.
На входе программа получает количество секунд, потраченных на прохождение комнаты.
На выходе программа должна выдавать количество очков, заработанных игроком.
Не забудь про валидацию, и в случае неправильных значений, выводи “error”!
Время
Бонус к выигрышу
1-59 сек.
+100000
от 60 до 119 сек
99999-80000
от 120 до 239 сек.
79999-40000
от 240 до 359 сек.
39999-20000
от 360 до 480 сек.
19999-0
Мой код, где ошибка?
a = 0 #Количество секунд
b = 0 #Счёт
f = 0
v = 0
try:
a = int(input())
except:
v = 0
while True:
if a > 480:
print(“error”)
break
elif a < 1:
print(“error”)
break
elif a > 0 and a < 60:
b = 100000
print(b)
break
elif a == 60:
b = 99999
print(b)
break
elif a > 60 and a < 119:
a = a - 60
f = round (20000 / 60 * a)
b = (99999 - f)
print(b)
break
elif a == 119:
b = 80000
print(b)
break
elif a == 120:
b = 79999
print(b)
break
elif a == 239:
b = 40000
print(b)
break
elif a > 120 and a < 239:
a = a - 120
f = round (40000 / 120 * a)
b = (79999 - f)
print(b)
break
elif a == 240:
b = 39999
print(b)
break
elif a == 359:
b = 20000
print(b)
break
elif a > 240 and a < 359:
a = a - 240
f = round (20000 / 120 * a)
b = (39999 - f)
print(b)
break
elif a == 360:
b = 19999
print(b)
break
elif a == 480:
b = 0
print(b)
break
elif a > 360 and a < 480:
a = a - 360
f = round (20000 / 120 * a)
b = (19999 - f)
print(b)
break
else:
print(“error”)
break
Офлайн
294
Vladimir2222первая ошибка: выкладывая код, не заключили его в теги:
Мой код, где ошибка?
[code python][/code]
[code python][/code]
Офлайн
124
если бы этот человек сначала прошел обучение как писать на форуме,то код был бы заключен в тегах
Офлайн
0
a = 0 #Количество секунд b = 0 #Счёт f = 0 v = 0 try: a = float(input()) except: v = 0 while True: if a > 480: print("error") break elif a < 1: print("error") break elif a > 0 and a < 60: b = 100000 print(b) break elif a == 60: b = 99999 print(b) break elif a > 60 and a < 119: a = a - 60 f = round (20000 / 60 * a) b = (99999 - f) print(b) break elif a == 119: b = 80000 print(b) break elif a == 120: b = 79999 print(b) break elif a == 239: b = 40000 print(b) break elif a > 120 and a < 239: a = a - 120 f = round (40000 / 120 * a) b = (79999 - f) print(b) break elif a == 240: b = 39999 print(b) break elif a == 359: b = 20000 print(b) break elif a > 240 and a < 359: a = a - 240 f = round (20000 / 120 * a) b = (39999 - f) print(b) break elif a == 360: b = 19999 print(b) break elif a == 480: b = 0 print(b) break elif a > 360 and a < 480: a = a - 360 f = round (20000 / 120 * a) b = (19999 - f) print(b) break else: print("error") break
Отредактировано Vladimir2222 (Окт. 12, 2020 11:26:38)
Офлайн
294
Или как вариант, он бы вообще ничего не написал, обноломался бы на этапе обучения.
Хотя согласен, нужна какаято мурзилка с картинками, закрепленная в шапке, как минимум, ветки “Python для новичков”
[code python][/code]
Офлайн
0
Давайте теперь комментарии по сути
Офлайн
294
Vladimir2222
а в чем ошибка? если оно считает неправильно, то хотябы предоставте что вводите, что программа выдает, и что должна выдать на самом деле.
[code python][/code]
Отредактировано PEHDOM (Окт. 12, 2020 11:40:38)
Офлайн
0
В этом то и загвоздка.
Нужно сдать задачу.
В нее зашиты какие то критерии.
На 6 критерии стопорится.
Failed test #6 of 10. Wrong answer
Вот мучаюсь, не понимаю, что еще хотят.
Офлайн
0
Sample Input:
59
Sample Output:
100000
Офлайн
294
Vladimir2222ну так все работает
Sample Input:59Sample Output:100000
а другие варианты, например75, 200, 250, 400 или 500?[code python][/code]
Офлайн