Loading...
Losko avatar Losko 69 Точки

Умната Лили

Стигнах до 80/100 и не мога да разбера къде ми е грешката.... Визуално работи вярно.... 
http://pastebin.com/pxv3tG5A

Изпит по "Програмиране за начинаещи" – 24 април 2016

Задача 4. Умната Лили

Лили вече е на N години. За всеки свой рожден ден тя получава подарък. За нечетните рождени дни (1, 3, 5...n) получава играчки, а за всеки четен (2, 4, 6...n) получава пари. За втория рожден ден получава 10.00 лв, като сумата се увеличава с 10.00 лв, за всеки следващ четен рожден ден (2 -> 10, 4 -> 20, 6 -> 30...и т.н.). През годините Лили тайно е спестявала парите. Братът на Лили, в годините, които тя получава пари, взима по 1.00 лев от тях. Лили продала играчките получени през годините, всяка за P лева и добавила сумата към спестените пари. С парите искала да си купи пералня за X лева. Напишете програма, която да пресмята, колко пари е събрала и дали ѝ стигат да си купи пералня.

Вход

От конзолата се прочитат 3 числа, на отделни редове:

  • Възраста на Лили – цяло число в интервала [1...77]
  • Цената на пералнята – число в интервала [1.00...10 000.00]
  • Единична цена на играчкацяло число в интервала [0...40]

Изход

Да се отпечата на конзолата един ред:

  • Ако парите на Лили са достатъчни:
    • Yes! {N} – където N е остатъка пари след покупката
  • Ако парите не са достатъчни:
    • No! {М}– където M е сумата, която не достига
  • Числата N и M трябва да за форматирани до вторият знак след десетичната запетая.
Тагове:
0
Programming Fundamentals
borislav9212 avatar borislav9212 745 Точки
Best Answer

Здравей,

Проблема ти идва от " if " проверката, трябва да е " <= " ->  if (washingPrice <= totalMoney);

1
Losko avatar Losko 69 Точки

Супер Благодаря!

1
andreiko489 avatar andreiko489 17 Точки

Може дори да не използваме цикъл. Просто трябва да съобразим че сбора на числата от 1 до N e N*(N+1)/2 и да разгледаме два случая за четно и нечетно N:

using System;

namespace SmartLilly
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());
            double X = double.Parse(Console.ReadLine());
            double P = double.Parse(Console.ReadLine());

            double cash = 0.0;


            if (n % 2 == 0)
            {
                //сбора на числата от 1 до n/2 умножен по 10лв. плюс n/2 броя играчки (*P) минус n/2 броя по едно левче
                cash += 10 * (n / 2 * (n / 2 + 1) / 2) - n / 2 + n / 2 * P;
            }
            else if (n % 2 != 0)
            {
                //сбора на числата от 1 до (n-1)/2 умножен по 10лв. плюс (n+1)/2 броя играчки (*P) минус (n+1)/2 броя по едно левче
                cash += 10 * (n - 1) / 2 * ((n - 1) / 2 + 1) / 2 - (n - 1) / 2 + (n + 1) / 2 * P;
            }

            if (cash >= X) { Console.WriteLine($"Yes! {cash - X:f2}"); }
            else { Console.WriteLine($"No! {X - cash:f2}"); }
        }
    }
}

 

 

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