Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

IvayloKanev10 avatar IvayloKanev10 0 Точки

Проблем със задачата - Световен рекорд по плуване

Здравейте, реших задачката "Световен рекорд по плуване" получавайки и двата отговора правилно, но въпреки всичко след като я поставя в Judge ме оценява с 50/100.. Моля да ми помогнете и обясните грешката

import java.util.Scanner;

public class WorldSwimmingRecord {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        double recordInSeconds = Double.parseDouble(scanner.nextLine());
        double meters = Double.parseDouble(scanner.nextLine());
        double timeInSeconds = Double.parseDouble(scanner.nextLine());

        double swimming = meters * timeInSeconds;
        double every15 = meters / 15 ;
        double every15Final = every15 * 12.5;
        double allTime = swimming + every15Final;

        if (recordInSeconds < allTime){
            double fail = Math.floor(allTime - recordInSeconds);
            System.out.printf("No, he failed! He was %.2f seconds slower.", fail );
        }else {
            double need = meters * timeInSeconds;
            double plus15 = Math.floor(meters / 15);
            double plus152 = plus15 * 12.5 ;
            double allTime2 = need + plus152;

            System.out.printf("Yes, he succeeded! The new world record is %.2f seconds.", allTime2);

        }
    }
}
Тагове:
0
Programming Basics with Java
SophYO avatar SophYO 74 Точки
Best Answer

Здрасти!

 

За да има рекорд времето на плувеца трябва да е по- малко от световния рекорд. То не може 

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

Т.е. 

 if (recordInSeconds <= allTime){
            double fail = Math.floor(allTime - recordInSeconds);
            System.out.printf("No, he failed! He was %.2f seconds slower.", fail );

Мисля, че тази част:

double need = meters * timeInSeconds;
            double plus15 = Math.floor(meters / 15);
            double plus152 = plus15 * 12.5 ;
            double allTime2 = need + plus152;

е напълно излишна в случая. :)

 

Заповядай и моето решение за сравнение: https://pastebin.com/dY4mHMuT

 

Късмет!!! :)

2
emo.999 avatar emo.999 399 Точки

Здравей, 

не е нужно да създаваш толкова много променливи. 

Опитвай се в проверките да задаваш/променяш стойността на вече декларирани променливи и накрая само да печаташ резултата им.

Ето мое решение от Basics: Кликни ме :) 

Поздрави!

0
Krassi_Daskalova avatar Krassi_Daskalova 2 Точки

Заповядай :)

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        double recordInSeconds = Double.parseDouble(scanner.nextLine());
        double meters = Double.parseDouble(scanner.nextLine());
        double timeInSeconds = Double.parseDouble(scanner.nextLine());

        // колко пъти ще закъснее с 12.5 сек.
        double a = Math.floor(meters / 15);
        double allTime = meters * timeInSeconds + a * 12.5;
        double need = Math.abs(allTime - recordInSeconds);

        if (recordInSeconds < allTime) {
            double fail = Math.floor(allTime - recordInSeconds);
            System.out.printf("No, he failed! He was %.2f seconds slower.", fail);
        } else {
            System.out.printf("Yes, he succeeded! The new world record is %.2f seconds.", allTime);

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