Софтуерно Инженерство
Loading...
+ Нов въпрос
nkostadinski avatar nkostadinski 1 Точки

Защо в judge не ми дава 100 от 100 точки и как да го оправя

Здравейте,

Като кача задачата "Озеленяване на дворове" за Java в Judge ми дава 70 от 100 точки. Като дам на Details Ми дава следното:

Test #8 (Runtime error)

Time used: 0.036 s

Memory used: 1.11 MB

Test #9 (Runtime error)

Time used: 0.034 s

Memory used: 0.87 MB

Test #10 (Runtime error)

Time used: 0.038 s

Memory used: 1.09 MB

Това ми е кода:

import java.util.Scanner;

public class YardGreening {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int kvMeters = Integer.parseInt(scan.nextLine());
        //double price = kvMeters * 7.61;
        double discount = 0.18 * (kvMeters * 7.61);
        double finalPrice = (kvMeters * 7.61) - discount;
        System.out.println("The final price is: " + String.format("%.2f", finalPrice) + " lv.");
        System.out.println("The discount is: " + String.format("%.2f", discount) + " lv.");
    }
}

 

Тагове:
krum_43 avatar krum_43 185 Точки

А какво е условието?

0
nkostadinski avatar nkostadinski 1 Точки

8. Озеленяване на дворове

Божидара разполага с няколко къщи на Черноморието и желае да озелени дворовете на някои от тях, като по този начин създаде уютна обстановка и комфорт на гостите си, като за целта е наела фирма.

Напишете програма, която изчислява необходимите средства, които Божидара ще трябва да заплати на фирмата изпълнител на проекта. Цената на един кв. м. е 7.61лв със ДДС. Тъй като нейният двор е доста голям, фирмата изпълнител предлага 18% отстъпка от крайната цена.

Вход

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

1. Кв. метри, които ще бъдат озеленени – реално число в интервала [0.00… 10000.00]

Изход

На конзолата се отпечатват два реда:

• "The final price is: {крайна цена на услугата} lv."

• "The discount is: {отстъпка} lv."

И двете суми трябва да бъдат форматирани до втората цифра след десетичния знак.

Примерен вход и изход

Вход Изход Обяснения

540

 The final price is: 3369.71 lv.

The discount is: 739.69 lv. Пресмятаме цената за озеленяване на целия двор:

540 * 7.61 = 4109.40 лв.

Приспадаме отстъпката от общата сума:

0.18 * 4109.40 = 739.69 лв.

Калкулираме крайната цена на услугата:

4109.40 – 739.69  3369.71 лв.

Вход Изход

135

 The final price is: 842.43 lv.

The discount is: 184.92 lv.

 

0
svephoto avatar svephoto 215 Точки

Здравей,

 

Просто промени типа данни, който четеш в началото за квадратните метри - вместо int да стане double. По условие трябва да прочиташ реално число, което е число с десетична запетая. Иначе както е така с int, ако отсреща (в някои от тестовете в Judge) ти подадат double, ще гърми.

 

Успех!

1
nkostadinski avatar nkostadinski 1 Точки

 Благодаря :) . Който не внимава достатъчно като чете условието е така. Аз се чудех дали не съм объркал нещо с начина на форматиране до 2-ия знак след запетаята - от интернет гледах как да форматирам и едновремено да се долепи в стринга

1
svephoto avatar svephoto 215 Точки

Да, няма проблеми, случва се да недогледаме нещо в условието. :-)

Иначе е супер, че си търсил в нет-а за форматирането, работи си съвсем коректно това, което си написал. А друг вариант ти е това, което дава същия изход, но сякаш програмката работи по-бързо, най-вероятно защото не ползва допълнително време за долепване/конкатениране на три стринга, а само за форматиране:

 

System.out.println(String.format("The final price is: %.2f lv.", finalPrice));
System.out.println(String.format("The discount is: %.2f lv.", discount));

0
16/11/2019 17:57:54