Loading...
sevastiankr avatar sevastiankr 0 Точки

For цикъл упражнение. 6-та задача

6.Заплата

Шеф на компания забелязва че все повече служители прекарват  време в сайтове, които ги разсейват. 

За да предотврати това, той въвежда изненадващи проверки на отворените табове на браузъра на служителите си. Според сайта се налагат различни глоби:

  • "Facebook" -> 150 лв.
  • "Instagram" -> 100 лв.
  • "Reddit" -> 50 лв.

От конзолата се четат два реда:

  • Брой отворени табове в браузъра n - цяло число в интервала [1...10]
  • Заплата - число в интервала [700...1500]

След това n – на брой пъти се чете име на уебсайт – текст

Ако по време на проверката заплатата стане по-малка или равна на 0 лева, на конзолата се изписва
"You have lost your salary." и програмата приключва. В противен случай след проверката на конзолата се изписва остатъкът от заплатата (да се изпише като цяло число).

 

Дава ми 88/100 в Judge при 10-ти тест и не разбирам защо

https://pastebin.com/ZTTca5b2

Тагове:
0
AndrewWillie avatar AndrewWillie 4 Точки

It's good that you wrote this article. You did your best. Thanks for the extensive information that you have provided.

0
Rafaelo avatar Rafaelo 42 Точки

Здравей,

По условие се изисква програмата да приключи в момента в който заплатата е по-малка или равна на 0.

Така написан кода обаче, for loop-a ще се върти докато tabs + 1 итерациите не бъдат изпълнени до край.

Трябва да добавиш командата break, когато проверяваш дали заплатата е по-малка или равна на 0 и ако това върне True, тогава излизаме от for loop-а и приключваме програмата.

За референция: https://pastebin.com/J3YVznFU и дава 100 / 100 в Judge.

Успех!

0
sevastiankr avatar sevastiankr 0 Точки

Благодаря ти, пропуснал съм го това.

0
merchant avatar merchant 3 Точки

Може ли да погледнете и това решение, дава 77/100 в Judge? 

Къде да се постави break при това решение?

Мерси предварително!

 

 

n = int(input())
salary = int(input())

for index in range(0, n):
    text = input()
    if text == "Facebook":
        if salary - 150 <= 0:
            print('You have lost your salary.')
        else:
            salary -= 150

    elif text == "Instagram":
        if salary - 100 <= 0:
            print('You have lost your salary.')
        else:
            salary -= 100

    elif text == "Reddit":
        if salary - 50 <= 0:
            print('You have lost your salary.')
        else:
            salary -= 50

if salary > 0:
    print(int(salary))



 

0
svephoto avatar svephoto 1191 Точки

Здравей, merchant,

 

Според мен имаш нужда от проверка за това дали не ти подават сайт, различен от трите изброени. Ако е такъв, даваш continue - можеш да сложиш проверката след трите изброени като else:

 

else:
    continue

 

Извади смятането за изваждането на съответната глоба от заплатата преди да провериш дали последната е <= 0 и ако вече служителят си е изгубил заплатата сложи по един break и при трите случая, в които печаташ нужното съобщение (по условие програмата трябва да приключи). Пример, който трябва да се приложи и за останалите два варианта:

 

if text == "Facebook":
    salary -= 150
    if salary <= 0:
        print('You have lost your salary.')
        break

 

По този път трябва да стигнеш до 100/100. Ако все още имаш трудности, пиши отново. Успех!

0
OnmoviesApp avatar OnmoviesApp 3 Точки

Interesting post. I Have Been wondering about this issue. so thanks for posting. Pretty cool post.It 's really very nice and Useful post Onmovies Malayalam TV Apk

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