Loading...
koceww avatar koceww 4 Точки

9. *Padawan Equipment C#

1.*Padawan Equipment

Yoda is starting his newly created Jedi academy. So, he asked master Ivan Cho to buy the needed equipment. The number of items depends on how many students will sign up. The equipment for the Padawan contains lightsabers, belts and robes.

You will be given the amount of money Ivan Cho has, the number of students and the prices of each item. You have to help Ivan Cho calculate if the money he has is enough to buy all of the equipment, or how much more money he needs.
Because the lightsabres sometimes brake, Ivan Cho should buy 10% more, rounded up to the next integer. Also, every sixth belt is free.

Input / Constraints

The input data should be read from the console. It will consist of exactly 5 lines:

  • The amount of money Ivan Cho has – floating-point number in range [0.00…1,000.00]
  • The count of students – integer in range [0…100]
  • The price of lightsabers for a single sabre – floating-point number in range [0.00…100.00]
  • The price of robes for a single robe – floating-point number in range [0.00…100.00]
  • The price of belts for a single belt – floating-point number in range [0.00…100.00]

The input data will always be valid. There is no need to check it explicitly.

Output

The output should be printed on the console.

  • If the calculated price of the equipment is less or equal to the money Ivan Cho has:
    • "The money is enough - it would cost {the cost of the equipment}lv."
  • If the calculated price of the equipment is more than the money Ivan Cho has:
    •  "Ivan Cho will need {neededMoney}lv more."
  • All prices must be rounded to two digits after the decimal point.

Examples

Input

Output

Comments

100

2

1.0

2.0

3.0

The money is enough - it would cost 13.00lv.

Needed equipment for 2 padawans  :

sabresPrice*(studentsCount + 10%) + robesPrice * (studentsCount) + beltsPrice*(studentsCount-freeBelts)

1*(3) + 2*(2) + 3*(2) = 13.00

13.00 <= 100 – the money will be enough.

Input

Output

Comments

100

42

12.0

4.0

3.0

Ivan Cho will need 737.00lv more.

Needed equipment for 42 padawans:

12*47 + 4*42 + 3*35 = 837.00

837 > 100 – need 737.00 lv. more.

 

 

 

 

Здравейте . Някой може ли да погледне този код и да каже може ли да се рефактурира и да се направи да работи или логиката е грешка.

https://pastebin.com/xrgJLMfv

Тагове:
1
Module: C# Advanced
knoteva avatar knoteva 1081 Точки

Здравей,

Логиката за коланите не е ок.

Безплатните колани са: int belts = students / 6; И след това трябва от судентите да извадиш безплатните колани: ((students-belts) * priceForBelts)

https://pastebin.com/dnX7UtEJ

1
03/10/2020 20:39:04
Elena123456 avatar Elena123456 235 Точки

@кnoteva ,

благодаря за разяснението как ще намерим броя на безплатните колани(на всеки пет един е безплатен): като разделим броя на всички студенти на 6. След това трябва от общата сума за всички колани да извадим сумата на безплатните колани и така ще получим сумата на коланите след отстъпката.

Щях да си спестя доста време в четене на статии за дискаунти и изчислявания на проценти, ако бях видяла по-рано темата. :)

Поздрави!

Елена

 

using System;

namespace PadawanEquipment
{
    class MainClass
    {
        public static void Main(string[] args)
        {

            double moneyBalance = double.Parse(Console.ReadLine());
            int countStudent = int.Parse(Console.ReadLine());
            double priceLightSaber = double.Parse(Console.ReadLine());
            double priceRobe = double.Parse(Console.ReadLine());
            double priceBelt = double.Parse(Console.ReadLine());

            double totalLightSabersPrice = Math.Ceiling(countStudent+0.1*countStudent) * priceLightSaber;
            double totalRobesPrice =countStudent * priceRobe;
            double totalBeltPrice = countStudent * priceBelt;

            int freeBelt =(countStudent / 6);
            
            double totalPriceOfAll = totalLightSabersPrice  + totalRobesPrice + (totalBeltPrice - (freeBelt*priceBelt));

            if (moneyBalance >= totalPriceOfAll)
            {
                Console.WriteLine($"The money is enough - it would cost {totalPriceOfAll:f2}lv.");

            }

            else if (moneyBalance < totalPriceOfAll)
            {
                Console.WriteLine($"Ivan Cho will need {totalPriceOfAll-moneyBalance:f2}lv more.");
            }

        }
    }
}

 

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