Loading...
Vanadis avatar Vanadis 1 Точки

[JAVA] Cake Tycoon - Задача от изпит

Здравейте,

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

Линк към задачата в системата за оценяване

Можете да свалите условието от тук (или направо от линка в системата за оценяване)

Опит за решение:

package Izpiti;

import java.util.Scanner;
public class CakeTycoon {
    public static void main(String[] args) {

    Scanner scanner = new Scanner (System.in);

    int cakeWanted = Integer.parseInt(scanner.nextLine());
    double kgFlourNeeded = Double.parseDouble(scanner.nextLine());
    int kgFlourAvaible = Integer.parseInt(scanner.nextLine());
    int truffles = Integer.parseInt(scanner.nextLine());
    int trufflesPrice = Integer.parseInt(scanner.nextLine());

    double trufflesFinal = truffles * trufflesPrice;

    int cakesPossibleToMake = (int) (kgFlourAvaible / kgFlourNeeded);

    if (cakesPossibleToMake >= cakeWanted){
    int cakesMade = cakeWanted;
    double trufflesPerCake = trufflesFinal / cakesMade;
    double finalPrice = trufflesPerCake + (trufflesPerCake*(25d/100d));
    System.out.printf("All products available, price of a cake: %.2f", finalPrice);
    }else{
    int cakesMade = cakesPossibleToMake;
    double missingFlour = (kgFlourNeeded * cakeWanted) - kgFlourAvaible;
    System.out.printf("Can make only %d cakes, need %.2f kg more flour", cakesMade, missingFlour);
    }
}

}

Наясно съм, че част от кода може да се спести, но за момента предпочитам да описвам по-подробно стъпките, понеже съм начинаещ.

Предполагам, че грешката е емелентарна и допусната по ненимание, но нещо не я виждам. От примерните тестове в условието това решение не се справя само с последния, поради което и системата за оценяване дава 75/100.

Благодаря ви предварително!

0
Programming Basics 01/02/2017 16:55:45
borkins avatar borkins 47 Точки

Вероятно си го оправил вече, но това е израза, в който се губят данни:

double trufflesFinal = truffles * trufflesPrice;

С други думи, за да получиш 64 битов резултат от умножението трябва поне едно от числaта да е от този тип.

double trufflesFinal = (double) truffles * trufflesPrice;
// Or
long trufflesFinal = (long) truffles * trufflesPrice;

 

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