Enkel uppgift, äckligt lösning
Hej igen!
Jag kommer inte på något snyggt för att lösa det!
Jag har sparat allt i en array och jämför $$ x_{1}, x_{2}, x_{3} $$ (respektive y) med värdarna, men det blir 6 jämförelser... Hur skulle ni göra det snyggt?
Förlåt att jag kommenterar ditt språk, men jag trodde "värdarna" betydde "värdena" först och förstod inte så mycket. Men menar du "varandra"?
Nej nej det är absolut ingen fara!
Jag värdar det hemliga hoppet att prata och skriva snyggt på svenska någon dag, så språkpolisen är altid välkommen.
Ja, det är nog värdena som jag menade. Jag jämför varje x för att hitta den enstaka som inte återkommer 2 ggr.
Och samma för y.
Edit: titta, jag även försökte rekrytera back in the days: https://www.pluggakuten.se/trad/sprak-polis-sokes/
Jag behöver bara jämföra x1 med x2 och x2 med x3, två jämförelser. (Och sen y också.) Men sen blir det äckligare än något annat. Hur ser hela din kod ut?
Jag gjorde det i början men problemet är att test fall 2 faller med bara 2 jämförelser.
Testa din med den andra testfall som kommer med exempel!
public class Main {
public static void main(String[] args) {
Kattio io = new Kattio(System.in);
int[] coordinates = new int[6];
for (int i = 0; i < 6; i++) {
coordinates[i] = io.getInt();
}
//printing x
if (coordinates[0] == coordinates[2])
System.out.print(coordinates[4]);
else if (coordinates[0] == coordinates[4])
System.out.print(coordinates[2]);
else if (coordinates[2] == coordinates[4])
System.out.print(coordinates[0]);
System.out.print(" ");
//printing y
if (coordinates[1] == coordinates[3])
System.out.print(coordinates[5]);
else if (coordinates[1] == coordinates[5])
System.out.print(coordinates[3]);
else if (coordinates[3] == coordinates[5])
System.out.print(coordinates[1]);
}
}
Eftersom man vet att två av x:en är lika behövs inte den tredje jämförelsen, utan då vet man att det är coordinates[0] som ska ut. Om man inte är säker på att input beter sig så, så måste man ha en fjärde klausul med "else" där man ger ett lämpligt felmeddelande.
Men en smula "äckligt" är det att man bara håller på med siffrorna 0 till 5 och måste komma ihåg vad som är x och vad som är y. Det skulle vara mer lättläst om man hade en array för x och en för y.
En smula oelegant är det också att man har precis samma logik på två ställen, fast med olika index. Först gör man en sak för x och sedan precis samma för y. Det borde gå att göra en funktion för det.
Men din kod är helt OK.
Nej, det trodde jag också men det behövs alla tre jämförelser konstigt nog.
Har du skickat din kod i deras tester?
Hur skulle du ha löst det utan arrayer?
dajamanté skrev:Nej, det trodde jag också men det behövs alla tre jämförelser konstigt nog.
Har du skickat din kod i deras tester?
Hur skulle du ha löst det utan arrayer?
Nej, jag har inte provat.
Jag sa inte utan arrayer, jag sa att jag skulle föredra två arrayer.
Jag tror vi måste ha tre jämförelser: en första tillåter att skriva ut x_3, den andra x_1, så vi måste vara en upplopp för x_2. Ok, om det är inga bättre förbättring stänger jag :)
Tack Laguna!
dajamanté skrev:Jag tror vi måste ha tre jämförelser: en första tillåter att skriva ut x_3, den andra x_1, så vi måste vara en upplopp för x_2. Ok, om det är inga bättre förbättring stänger jag :)
Tack Laguna!
Min teori är att du kan ta bort "if (coordinates[2] == coordinates[4])".