Софтуерно Инженерство
Loading...
+ Нов въпрос
vvalchanov1988 avatar vvalchanov1988 6 Точки

Python 03. Vacation While loop

Здравейте,

Моля за съдействие с тази задача.

Първо я реших сам и премина всички тестове, но Джъдж ми дава 0/100.

После я реших по насоките от Упражнения Насоки, но Джъдж отново дава 0/100.

Моете решение:

vacation_money = float(input())
her_money = float(input())
days_spend = 0
spend = 0
safe = 0
day = 0
while days_spend != 5:
    if her_money == vacation_money:
        break
    command = input()
    sum = float(input())
    day += 1
    if command == 'spend':
        spend = her_money - sum
        days_spend += 1
        if spend <= 0:
            spend = 0
    elif command == 'safe':
        safe = her_money + sum
        days_spend = 0
    her_money = safe - spend
if days_spend == 5:
    print("You can't save the money.")
    print(f'{day}')
if her_money == vacation_money:
    print(f'You saved the money for {day} days.')

Решението от Насоки:

needed_money = float(input())
owned_money = float(input())
days_counter = 0
spending_counter = 0
while owned_money < needed_money and spending_counter < 5:
    command = input()
    money = float(input())
    days_counter += 1
    if command == 'safe':
        owned_money += money
        spnding_counter = 0
    elif command == 'spend':
        owned_money -= money
        spending_counter += 1
        if owned_money < 0:
            owned_money = 0
if spending_counter == 5:
    print("You can't save the money.")
    print(f'{days_counter}')
if owned_money >= needed_money:
    print(f'You saved the money for {days_counter} days.')

Нещо с Джъдж ли не е наред или кода е грешен.

Благодаря Ви за Съдействието!

Приятен ден!

0
m.hrstv avatar m.hrstv 3 Точки

Виждам safe вместо save, на единия принт липсват изминалите дни май. Абе, ако форматираш кода някак, ще е доста по-лесно да се чете. Междувременно, ето ти моето 100/100 решение:

goal = float(input())
balance = float(input())
cons_spendings = 0
days = 0

while balance < goal:
    action = input()
    amount = float(input())
    days += 1
    if action.lower() == "save":
        balance += amount
        cons_spendings = 0
    elif action.lower() == "spend":
        if amount >= balance:
            balance = 0
        else:
            balance -= amount
        cons_spendings += 1
        if cons_spendings == 5:
            break

if balance >= goal:
    print(f"You saved the money for {days} days.")
else:
    print(f"You can't save the money.\n{days}")

 

0
vvalchanov1988 avatar vvalchanov1988 6 Точки

elif command == 'safe':

Изглежда открихме грешката.

 

0
08/12/2019 11:24:42
MiroslavSV avatar MiroslavSV 0 Точки

Здравейте,

На моето решение Джъдж системата ми дава 77/100 точки, а не мога да намеря къде бъркам. Ако може малко помощ.

neobhodimipari=float(input())
nalichnipari=float(input())
dni=0
posledovatelnidni=0
while nalichnipari<neobhodimipari:
    deistvie=input()
    suma=float(input())
    dni+=1
    if deistvie=="save":
        nalichnipari+=suma
        posledovatelnidni=0
    if deistvie=="spend":
        posledovatelnidni += 1
        if suma>=nalichnipari:
            nalichnipari=0
        else:
            nalichnipari-=suma
        if posledovatelnidni == 5:
            break
if nalichnipari>=neobhodimipari:
    print(f"You saved the money for {dni} days.")
if posledovatelnidni == 5:
    print("You can't save the money.")
    print(posledovatelnidni)
-1
groot avatar groot 0 Точки
if posledovatelnidni == 5:
    print("You can't save the money.")
    print(posledovatelnidni)

 

Тук колега. Не принтирай последователните дни, а общо дните и трябва да е окей.

0
MiroslavSV avatar MiroslavSV 0 Точки

Получи се, благодаря!

0