6 svar
127 visningar
dajamanté är nöjd med hjälpen
dajamanté 5139 – Fd. Medlem
Postad: 7 feb 2019 06:43

Antal siffror när man konverterar till en annan bas

God morgon!

Jag gjorde en basbyte och sparade talen i en array för vidare manipulation.

int[] figures = new int[(int) Math.ceil(Math.log(number) / Math.log(base))];

 

Problemet att trots att det passerar testfall, det krånglar till senare med ytterligare tests. Det kan lösas med en arraylist, men varför fungerar inte primitivarrayen?

Laguna Online 28587
Postad: 7 feb 2019 06:57

Har du provat t.ex. alla tal från 2 till 12 i bas 10?

dajamanté 5139 – Fd. Medlem
Postad: 7 feb 2019 08:54

Ja, bas 10 funkar.

Men nu som du säger det kanske Math.ceil(Math.log(1) / Math.log(10)) avrundar till 0 istället för 1.

Laguna Online 28587
Postad: 7 feb 2019 08:57

Mm. Och vad händer med 10? Det är potenser av basen som är problemet. 

dajamanté 5139 – Fd. Medlem
Postad: 7 feb 2019 11:02 Redigerad: 7 feb 2019 11:02

Nej 10 är fine. Jag bara behöver en plats för att 10 bas 10 är 1 och det är denna tal som jag ska upphöja i kvadrat (enligt problem)

Jag lägg till +1 i slutet och nu funkar det.

Trots för långsamt.

Tack Laguna!

Laguna Online 28587
Postad: 7 feb 2019 11:06
dajamanté skrev:

Nej 10 är fine. Jag bara behöver en plats för att 10 bas 10 är 1 och det är denna tal som jag ska upphöja i kvadrat (enligt problem)

Jag lägg till +1 i slutet och nu funkar det.

Trots för långsamt.

Tack Laguna!

10 i bas 10 är 10.

Men hursomhelst, som du gör kan man lösa problemet om man inte behöver veta exakt hur många siffror det är. Man kan ofta lösa problem så utan att ens försöka ta reda på vad som var fel, men det är en dålig vana.

dajamanté 5139 – Fd. Medlem
Postad: 7 feb 2019 18:54

Ja, sorry, jag var trött. Hur som helst, för att representera 10 i bas 10 behöver jag ett tal i min array. Det var det jag menade. Men däremot för att representera 1 i bas 10 avrundade min funktion till noll tal.

Jag har förstått felet, tack för hjälpen.

Svara Avbryt
Close