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

Задача "Toy shop" - Programming Basic JAVA

Здравейте!

На задачата "Toy shop" получавам 50% като резултат и ми е интересно какъв е точния код, на който се дават максимален брой точки. Това е моят код:

import java.util.Scanner;

public class ToyShop {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        double prize = Double.parseDouble(scanner.nextLine());
        int numberPuzzle = Integer.parseInt(scanner.nextLine());
        int numberDoll = Integer.parseInt(scanner.nextLine());
        int numberTeddybear = Integer.parseInt(scanner.nextLine());
        int numberMinion = Integer.parseInt(scanner.nextLine());
        int numberTrucks = Integer.parseInt(scanner.nextLine());

        double sum = numberPuzzle * 2.60 + numberDoll * 3 + numberTeddybear * 4.10 + numberMinion * 8.20 + numberTrucks * 2;
        int number = numberDoll + numberMinion + numberPuzzle + numberTeddybear + numberTrucks;

        if (number > 50){
            double newprize = 0.75 * sum;
            double rent = newprize * 0.10;
            double endprize = newprize - rent;
            double total = -(prize - endprize);
            System.out.printf("Yes! " + "%.2f lv left.", total);
        }else {
            double rent = sum * 0.10;
            double endprize = sum - rent;
            double total = prize - endprize;
            System.out.printf("Not enough money! " + "%.2f lv needed.", total);
        }
    }
}

Ще съм много благодарна. на всеки, който помогне!

Тагове:
0
Programming Basics
donev_955 avatar donev_955 1 Точки

Здравейте, 

Погледнете моето решение на задачата, със сигурност не е най-оптималното, но може да Ви помогне :)

 

import java.util.Scanner;

public class P10_ToyStore {
    public static void main (String[] args){
        Scanner scanner = new Scanner(System.in);

        double tripPrize = Double.parseDouble(scanner.nextLine());
        double amountOfPuzzles = Double.parseDouble(scanner.nextLine());
        double amountOfDolls = Double.parseDouble(scanner.nextLine());
        double amountOfTeddies = Double.parseDouble(scanner.nextLine());
        double amountOfMinions = Double.parseDouble(scanner.nextLine());
        double amountOfTrucks = Double.parseDouble(scanner.nextLine());

        // •    Пъзел - 2.60 лв.
        //•    Говореща кукла - 3 лв.
        //•    Плюшено мече - 4.10 лв.
        //•    Миньон - 8.20 лв.
        //•    Камионче - 2 лв.

        double toysPrice = (amountOfPuzzles * 2.60) + (amountOfDolls * 3) + (amountOfTeddies * 4.10) + (amountOfMinions * 8.20) + (amountOfTrucks * 2);
        double totalToysAmount = amountOfDolls + amountOfMinions + amountOfPuzzles + amountOfTeddies + amountOfTrucks;
        double discountPrice = 0.0;

        if (totalToysAmount >= 50){
            discountPrice = toysPrice * 0.25;
        }
         double sumTotal = (toysPrice - discountPrice) * 0.90;

        if (sumTotal >= tripPrize){

            sumTotal -= tripPrize;
            System.out.printf("Yes! %.2f lv left.",sumTotal);
        } else {

            double moneyNeeded = tripPrize - sumTotal;

            System.out.printf("Not enough money! %.2f lv needed.", moneyNeeded);
        }

    }
}
 

0
vs920 avatar vs920 0 Точки

A "double discountPrice = 0.0;" играе ли някаква важна роля в тази задача, защото единствената разлика между Вашето и моето решение е точно тази?

0
donev_955 avatar donev_955 1 Точки

Поради отстъпката, която се променя от зависимост на играчките. Направил съм го променлива, която просто да начислява отстъпката в зависимост от количеството играчки. 
След което при мен се смята надолу.

0
vs920 avatar vs920 0 Точки

Добре, балгодаря Ви.

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