Loading...
zhekov85 avatar zhekov85 0 Точки

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

Здравейте, няколко часа се блъскам и не получвама повече от 20/100 в judge. 

Ето кода: 

import java.util.Scanner;

public class WorldSwimmingRecord {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        double record = Double.parseDouble(scanner.nextLine());
        double range = Double.parseDouble(scanner.nextLine());
        double timeForOneMeter = Double.parseDouble(scanner.nextLine());
        double swimmingTime = range * timeForOneMeter;
        double extraTimePerOneMeter = Math.floor((range/15) * 12.5);
        double totalTime = swimmingTime + extraTimePerOneMeter;
        if (record <= totalTime){
            double needSeconds = totalTime - record;
            System.out.printf("No, he failed! He was %.2f seconds slower.", Math.floor(needSeconds));
        } else {
            System.out.printf(" Yes, he succeeded! The new world record is %.2f seconds.", totalTime);
        }
    }
}

ПС: Поствам кода така защото страницата на pastebin.com не работи.

Тагове:
0
Programming Basics
svephoto avatar svephoto 1191 Точки
Best Answer

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

 

1. Големият проблем идва от изчислението

double extraTimePerOneMeter = Math.floor((range / 15) * 12.5);

Тук махни външните скоби, да остане само

double extraTimePerOneMeter = Math.floor(range / 15) * 12.5;

Заради това ти заминават 80-тe точки.

 

2. Махни Math.floor от израза

System.out.printf("No, he failed! He was %.2f seconds slower.", Math.floor(needSeconds));

в if-проверката, тук нямаш нужда от него. Ако направиш само промяната от т. 1, а оставиш това непроменено, ще ти коства 10 точки в Judge (т. е. ще вземеш 90/100).

 

С тези 2 промени ще си вземеш 100-те точки.

 

Иначе, ако искаш докрай да си изпипаш печатането, махни излишния интервал (преди "Yes, ...") в началото на израза

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

в else-проверката, макар че, доколкото виждам, това в случая Judge не го отбелязва като проблем.

 

Успех!

0
23/11/2019 20:39:06
zhekov85 avatar zhekov85 0 Точки

Получи се, много благодаря !!!

0
svephoto avatar svephoto 1191 Точки

Супер, поздравления!! И - моля. :-)

0
svephoto avatar svephoto 1191 Точки

Здравей,

 

Би ли дал и условието на задачата?

0
zhekov85 avatar zhekov85 0 Точки

Иван решава да подобри Световния рекорд по плуване на дълги разстояния. На конзолата се въвежда рекордът в секунди,  който Иван трябва да подобри,  разстоянието в метри, което трябва да преплува и времето в секунди, за което плува разстояние от 1 м. Да се напише програма, която изчислява дали се е справил със задачата, като се има предвид, че: съпротивлението на водата го забавя на всеки 15 м. с 12.5 секунди. Когато се изчислява колко пъти Иванчо ще се забави, в резултат на съпротивлението на водата, резултатът трябва да се закръгли надолу до най-близкото цяло число.

Да се изчисли времето в секунди, за което Иванчо ще преплува разстоянието и разликата спрямо Световния рекорд.

Вход

От конзолата се четат 3 реда:

  1. Рекордът в секунди – реално число в интервала [0.00 … 100000.00]
  2. Разстоянието в метри – реално число в интервала [0.00 … 100000.00]
  3. Времето в секунди, за което плува разстояние от 1 м. - реално число в интервала [0.00 1000.00]

Изход

Отпечатването на конзолата зависи от резултата:

  • Ако Иван е подобрил Световния рекорд отпечатваме:
    • " Yes, he succeeded! The new world record is {времето на Иван} seconds."
  • Ако НЕ е подобрил рекорда отпечатваме:
    • "No, he failed! He was {недостигащите секунди} seconds slower."

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

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