Java - Exam 18.03.17 Задача 3: Кола под наем / Car to go
Имам проблем с 3-та задача от изпита на 18.03. В Judge не минава един тест(не е от нулевите) и ми дава 87 точки. Аз не си виждам грешката, някой може ли да помогне?. Това ми е кода на решението:
import java.util.Scanner; public class p03CarToGo { public static void main(String[] args) { Scanner scan = new Scanner(System.in); double budget = Double.parseDouble(scan.nextLine()); String season = scan.nextLine().toLowerCase(); if(budget < 10){ System.out.println("Invalid number"); }else if(budget <= 100){ System.out.println("Economy class"); if(season.equals("summer")){ System.out.printf("Cabrio - %.2f%n",budget * 0.35); }else if(season.equals("winter")){ System.out.printf("Jeep - %.2f%n",budget * 0.65); } }else if(budget <= 500){ System.out.println("Compact class"); if(season.equals("summer")){ System.out.printf("Cabrio - %.2f%n",budget * 0.45); }else if(season.equals("winter")){ System.out.printf("Jeep - %.2f%n",budget * 0.80); } }else if(budget > 500){ System.out.println("Luxury class"); System.out.printf("Jeep - %.2f%n",budget * 0.90); }else if(budget >=10000){ System.out.println("Invalid number"); } } }
И аз се усъмних за граничните стойности, понеже нулевите тестове не са с тях.
А тези скоби [10.00 .... 10000.00], нали означават и включително числата?
Това което написах по-горе не е съвсем вярно, но задачата пак ще изкарва грешен отговор.
Ако числото е по-голямо или равно на 10 000, ти ще очакваш да получиш съответното, но това няма да се случи, защото програмата ще провери първо дали е по-голямо от 500 и ще спре да проверява надолу. Тоест за числата от 10 000 нагоре, ще връща грешни отговори.
Граничните стойности не ги коментирам, защото не съм чел условието :)
И при обединяване на двете условия за извън диапазона не се променят точките.
Явно не е там проблема, или аз не интерпретирам правилно това: [10.00 .... 10000.00].
Това е условието: http://pastebin.com/BwSYqZ13
А това е решението за 87 точки: http://pastebin.com/aMTk8fp6