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?
Har du provat t.ex. alla tal från 2 till 12 i bas 10?
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.
Mm. Och vad händer med 10? Det är potenser av basen som är problemet.
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!
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.
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.