Kezdőoldal » Számítástechnika » Programozás » Java - hogy kell megoldani,...

Java - hogy kell megoldani, codingbat problema?

Figyelt kérdés

Given three ints, a b c, return true if one of b or c is "close" (differing from a by at most 1), while the other is "far", differing from both other values by 2 or more. Note: Math.abs(num) computes the absolute value of a number.



closeFar(1, 2, 10) → true

closeFar(1, 2, 3) → false

closeFar(4, 1, 3) → true

##########################################################



public boolean closeFar(int a, int b, int c) {

int ab = Math.abs(a - b);

int bc = Math.abs(b - c);

int ac = Math.abs(a - c);


return ( ab == 1 && ( bc > 2 || ac > 2 ) ) ||

( bc == 1 && ( ab > 2 || ac > 2 ) ) ||

( ac == 1 && ( ab > 2 || bc > 2 ) )

;



}



az egyik teszten elbukik a kod:

[link]



2018. okt. 2. 13:02
 1/5 anonim ***** válasza:
Nem 1 kell hogy legyen a különbség ahhoz hogy közel legyen, hanem legfeljebb 1, te viszont csak pontosan 1-re fogadod el.
2018. okt. 2. 14:39
Hasznos számodra ez a válasz?
 2/5 anonim ***** válasza:

Majdnem jó az elképzelés, csak szerintem kisséfigyelmetlen voltál.


1. A "at most 1" kisebb vagy egyenlőt (ez a "közel") és a "2 or more" nagyobb vagy egyenlőt (ez a "távol") jelöl.


2. Két fő feltétel van:

* az |a - b| "közel" van egymáshoz ÉS a |b - c| ÉS az |a - c| "távol" VAGY

* az |a - c| "közel" van egymáshoz ÉS a |b - c| ÉS az |a - b| "távol"


A |b - c| "közelségét", illetve a |a - b| és az |a - c| "távolságát" nem kell vizsgálni.

2018. okt. 2. 14:52
Hasznos számodra ez a válasz?
 3/5 A kérdező kommentje:

public boolean closeFar(int a, int b, int c) {

int ab = Math.abs(a - b);

int bc = Math.abs(b - c);

int ac = Math.abs(a - c);


return ( ab <= 1 && ( bc > 2 || ac > 2 ) ) ||

//( bc <= 1 && ( ab > 2 || ac >2 ) ) ||

( ac <= 1 && ( ab > 2 || bc >2 ) )

;



igy is elesik a teszt,...vagy nem igy gondoltatok?

2018. okt. 3. 19:16
 4/5 anonim ***** válasza:

Én csak azt szúrtam ki első ránézésre hogy az egyenlőség nem jó benne, de más gond is van, úgy jó ahogy a 2-es írta.


Csak két feltételt kell vizsgálni, és nem elég a vagy, mert mindkét távolság legalább 2 kell hogy legyen. Mivel legalább 2, itt szintén engedned kell az egyenlőséget is.

2018. okt. 3. 20:35
Hasznos számodra ez a válasz?
 5/5 anonim ***** válasza:

Továbbra is két probléma van:

1. A "2 or more" nagyobb vagy egyenlőt (ez a "távol") jelöl, nem csak nagyobbat.

2. A "közeli" ÉS a "távoli" esetek vizsgálatai között nem VAGY kapcsolat van.

2018. okt. 3. 22:24
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!