Loading...
dido1092 avatar dido1092 38 Точки

While-Loop - Exercise 03. Vacation

Привет тая задачка в judge ми дава само 66/100 не разбирам къде ми е грешката, не бих отказал помощ!

3.Почивка

Джеси е решила да събира пари за екскурзия и иска от вас да ѝ помогнете да разбере дали ще успее да събере необходимата сума. Тя спестява или харчи част от парите си всеки ден. Ако иска да похарчи повече от наличните си пари, то тя ще похарчи колкото има и ще ѝ останат 0 лева.

Вход

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

  • Пари нужни за екскурзията - реално число в интервала [1.00.. .25000.00]
  • Налични пари - реално число в интервала [0.00... 25000.00]

След това многократно се четат по два реда:

  • Вид действие – текст с възможности "spend" и "save".
    • Сумата, която ще спести/похарчи - реално число в интервала [0.01… 25000.00]

Изход

Програмата трябва да приключи при следните случаи:

  • Ако 5 последователни дни Джеси само харчи, на конзолата да се изпише:
  • "You can't save the money."
  • "{Общ брой изминали дни}"
  • Ако Джеси събере парите за почивката на конзолата се изписва:
  • "You saved the money for {общ брой изминали дни} days."

Примерен вход и изход

Вход

Изход

Обяснения

2000

1000

spend

1200

save

2000

You saved the money for 2 days.

 

Пари нужни за почивката:  2000

Наличните пари:  1000

spend – изваждаме от парите следващото число

1200 - ние разполагаме с 1000, но се опитваме да похарчим 1200, тъй като не разполагаме с толкова, харчим наличните си 1000 и оставаме 0 лева.

save – прибавяме към парите следващото число

2000 – разполагаме с 0, добавяме 2000 и събираме парите успешно за 2 дни.

110

60

spend

10

spend

10

spend

10

spend

10

spend

10

You can't save the money.

5

250

150

spend

50

spend

50

save

100

save

100

You saved the money for 4 days.

 

моят код: https://pastebin.com/rnAYwPAK

Тагове:
0
Programming Basics
RuNNeR4142 avatar RuNNeR4142 396 Точки
Best Answer

Здравей колега,

 

 Правилно си задал double sum = 0;  но от бързината предполагам, не си забелязал че парсваш от конзолата цяло число sum = int.Parse(Console.ReadLine());  това е за 100 точки.

Отделно ако искаш кода да изглежда по-оптимизиран - без повторения можеш  да премахнеш изцяло втората проверка в условието на while защото я имаш вече вътре в цикъла и не е от полза. . while ((moneyAvailable < moneyVacation) && (countSpendMoney < 5))

Същото важи и за изходната проверка if (moneyAvailable >= moneyVacation) ненужна е защото използваш return в другата проверка с изход и се подразбира от условието на while ((moneyAvailable < moneyVacation) че ако не влезе в while и продължи надолу до изхода парите винаги ще са равни или повече.


Успех за напред!

1
15/06/2019 13:41:27
dido1092 avatar dido1092 38 Точки

Благодаря колега, от бързане така става! :)

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