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 4803 Точки

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

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

 

Update:

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

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