Loading...
DilyanaGeorgieva avatar DilyanaGeorgieva 81 Точки

Проблем със задача Hungry Garfield(от изпита от 21.02.2016г) на Java

Здравейте, нещо не ми се получава задачата Hungry Garfield, не мога да си открия грешките. На Judge ми дава немалко точки, но все пак не е 100/100. Някой може ли да помогне?

Кода ми е следния:

import java.util.Scanner;

public class hungryGarfield210216 {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        double money = Double.parseDouble(scan.nextLine());
        double rate = Double.parseDouble(scan.nextLine());
        double price1 = Double.parseDouble(scan.nextLine());
        double price2 = Double.parseDouble(scan.nextLine());
        double price3 = Double.parseDouble(scan.nextLine());
        double count1 = Double.parseDouble(scan.nextLine());
        double count2 = Double.parseDouble(scan.nextLine());
        double count3 = Double.parseDouble(scan.nextLine());

        double moneyNeeded = price1/rate * count1 + price2/rate * count2 + price3/rate * count3;
        if(money >= moneyNeeded){
            System.out.printf("Garfield is well fed, John is awesome. Money left: $%.2f.",money - moneyNeeded);
        }else{
            System.out.printf("Garfield is hungry. John is a badass. Money needed: $%.2f.",Math.abs(moneyNeeded - money));
        }
    }
}
Тагове:
0
Programming Basics
MartinBG avatar MartinBG 4803 Точки

Колегите по-горе са прави за типа данни.

След известно боричкане с BigDecimal, който се оказа доста несговорчив :D, в крайна сметка успях да стигна до 100 точки в Judge с това Java решение. Не съм сигурен, че това е най-оптималният начин за решаване на задачата, но в един момент ми писна да гоня разлики от около 660 при числа с 20 цифри и обърнах всички параметри в BigDecimal.

На C# задачата се решава по аналогичен начин с Decimal.

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