• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Błąd w przykładowych testach, czy w moim kodzie - HackerRank, Kangaroo

0 głosów
61 wizyt
pytanie zadane 15 stycznia w Java przez coderCpp93 Gaduła (3,990 p.)

Witam mam poniższe zadanie na HackerRank. W przykładowym teście o numerze 0 są takie argumenty:

x1 = 0, v1 = 3, x2 = 4, v2 = 2.

Problem w tym, że moja odpowiedź jest NO, a według przykładu YES. Wydaje mi się, że moja odpowiedź jest poprawna, ponieważ żeby oba kangury znalazły się w tym samym miejscu, pierwszy musi zrobić 2 skoki, a drugi 1. Spotkają się w miejscu na osi oznaczonym 6. Po submitowaniu mam błędy w 6 na 30 odpowiedzi. W czym jest problem?

Poniżej kod:

import java.util.Scanner;

public class Solution {
    static String kangaroo(int x1, int v1, int x2, int v2) {
        int countOfFirstKangaroo = x1;
        int countOfSecondKangaroo = x2;
        int jumpsOfFirst = 0;
        int jumpsOfSecond = 0;

        if ((x1 < x2 && v1 < v2) || (x1 == x2 && v1 < v2) || (x1 < x2 && v1 == v2)) {
            return "NO";
        } else {
            while (countOfFirstKangaroo != countOfSecondKangaroo) {
                if (countOfFirstKangaroo < countOfSecondKangaroo) {
                    countOfFirstKangaroo += v1;
                    jumpsOfFirst++;
                } else if (countOfFirstKangaroo > countOfSecondKangaroo) {
                    countOfSecondKangaroo += v2;
                    jumpsOfSecond++;
                }
            }
        }

        if (jumpsOfFirst == jumpsOfSecond) return "YES";
        else return "NO";
    }

    private static final Scanner scanner = new Scanner(System.in);

    public static void main(String[] args) {
        int x1 = scanner.nextInt();
        int v1 = scanner.nextInt();
        int x2 = scanner.nextInt();
        int v2 = scanner.nextInt();

        System.out.println(kangaroo(x1, v1, x2, v2));

        scanner.close();
    }
}

 

1 odpowiedź

–1 głos
odpowiedź 16 stycznia przez Ciepły Obywatel (1,840 p.)

"The two kangaroos must land at the same location after making the same number of jumps."

Kangurki musza wyladowac w tym samym miejscu po zrobieniu tylu samo skoków

Gdy kangurki są na 6 to jeden musial skoczyć raz a drugi dwa razy więc to jest błędne i nigdy nie zwróci YES ponieważ jumpoffirst w tym przadku nie jest rowne jumpoffsecond

Kangurki spotkają się w punkcie 12 po 4skokach

Plus kod działa na zasadzie powtarzania się więc przy komendzie gdzie jest ++ może być tak ze zdąży dodac np do jumpsoffirst +3 wiec w tym miejscu tez lepiej gdyby bylo +=1

 

Zrób też żeby przy true wyswietlalo tez ilosc wykonanych skokow to Ci pozwoli sprawdzic przy ilu skokach jest błąd

Podobne pytania

0 głosów
2 odpowiedzi 81 wizyt
pytanie zadane 18 listopada 2018 w Python, Django przez Eliro Stary wyjadacz (11,130 p.)
0 głosów
1 odpowiedź 83 wizyt
pytanie zadane 13 lipca w Java przez Kube Obywatel (1,180 p.)
0 głosów
0 odpowiedzi 48 wizyt
pytanie zadane 26 lutego w Java przez anonymousProgrammer Nowicjusz (230 p.)
Porady nie od parady
Forum posiada swój własny chat IRC, dzięki któremu będziesz mógł po prostu pogadać z innymi Pasjonatami lub zapytać o jakiś problem. Podstrona z chatem znajduje się w menu pod ikoną człowieka w dymku.IRC

65,728 zapytań

112,369 odpowiedzi

237,231 komentarzy

46,688 pasjonatów

Przeglądających: 191
Pasjonatów: 4 Gości: 187

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...