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

Задача Yard Greening

Здравейте, колеги!

Не мога да се справя със следната задача:

9. Озеленяване на дворове
Божидара разполага с няколко къщи на Черноморието и желае да озелени дворовете на някои от тях, като
по този начин създаде уютна обстановка и комфорт на гостите си, като за целта е наела фирма.
Напишете програма, която изчислява необходимите средства, които Божидара ще трябва да заплати на
фирмата изпълнител на проекта. Цената на един кв. м. е 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.
 

Рещила съм я по следния начин, но не мога да стигна до края:

import java.util.Scanner;

public class YardGreening {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        double yards = Double.parseDouble(scanner.nextLine());

        double price = yards * 7.61;
        double discount = price * 0.18;
        double sum = price - discount;
        System.out.printf("The final price is: %.2f lv.", sum);
        System.out.printf("The discount is: %.2f lv.", sum);
    }
}

0
Programming Basics with Java
skenderskiantonio avatar skenderskiantonio 3 Точки

 Трябва да смениш последните два реда:

System.out.printf("The final price is: %.2f lv.\n", sum);
System.out.printf("The discount is: %.2f lv.", discount);

System.out.printf не пише на нов ред, а на сегашния. \n се използва, за да се мине на нов ред.

А на последния ред трябва да е discount, а не sum.

Може да видиш какъв е проблема със Zero test-овете, като натиснеш на Details на решението си.

0
venelin4eto avatar venelin4eto 1 Точки

И аз имам проблем на тази задача. В IntelliJ върви, а като я кача в judge не ми минава последните три теста. На Details пише, че има Runtime error. Пренаписах програмата по няколко различни начина и все там ми се чупи. Някой да има идея как да я оправя?

0
venelin4eto avatar venelin4eto 1 Точки

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int meters = Integer.parseInt(scan.nextLine());
        double wholeYard = meters * 7.61;
        double discount = wholeYard * 0.18;
        double finalPrice = wholeYard - discount;

        System.out.printf("The final price is: %.2f lv.%n", finalPrice);
        System.out.printf("The discount is: %.2f lv.", discount);
    }
}

0