Професионална програма
Loading...
+ Нов въпрос
sasobig12 avatar sasobig12 -4 Точки

Traveling (JAVA Programming basics)

Зддравейте,

 

не мога да откря тестовете при които ми се чупи кода. Ще можете ли да ми помогнете.

Вкарах едана камара входни данни и всичко работи. Не измислям тези гранични тестове при който може да се счупи явно кода. 

Благодаря ви за помоща. 

 

Задачата е :

Ани обича да пътува и иска тази година да посети няколко различни дестинации. Като си избере дестинация, ще прецени колко пари ще й трябват, за да отиде до там и ще започне да спестява. Когато е спестила достатъчно, ще може да пътува.

От конзолата всеки път ще се четат първо дестинацията и минималния бюджет, който ще е нужен за пътуването.

След това ще се четат няколко суми, които Ани спестява като работи и когато успее да събере достатъчно за пътуването, ще заминава, като на конзолата трябва да се изпише:

 "Going to {дестинацията}!"

Когато е посетила всички дестинации, които иска, вместо дестинация ще въведе "End" и програмата ще приключи.

 

Кода който написах е съставен от два вложени цикъла. Единият проверява дали подавам дестинация или End а втория цикъл върти докато Анито не събере паричките за пътуването. Условието и решението  са лесни но има някаква гранична стойност при която не работи кода. Коя е тя? Моля за помощ.

 

import java.util.Scanner;

public class Travelling {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        String destination = scanner.nextLine();

        int tripSavings = 0;


        while (!destination.equals("End")) {
            int tripCost = Integer.parseInt(scanner.nextLine());

            while (!(tripSavings >= tripCost)) {
                tripSavings += Integer.parseInt(scanner.nextLine());
            }

            System.out.printf("Going to %s!%n", destination);
            tripSavings = 0;
            destination = scanner.nextLine();

        }
    }
}

 

Тагове:
0
Programming Basics
MartinBG avatar MartinBG 3909 Точки

Не си дал линк към Judge, но по спомени, в тази задача сумите са от тип double, а не int. В резултат се губи дробната част и при някои от тестовете не успяваш да събереш нужната сума, преди да бъде подадена следващата дестинация.

Промени tripCost и tripSavings на double и използвай Double.parseDouble(scanner.nextLine()) за тях, и виж дали ще мине.

 

Update:

Намерих задачата в Judge и точно това се оказа проблема.

0
26/04/2020 17:17:11