6 svar
332 visningar
Maremare behöver inte mer hjälp
Maremare 1044 – Fd. Medlem
Postad: 15 jul 2020 16:45 Redigerad: 15 jul 2020 16:46

metod som skriver ut den första siffran

hej,

jag gör en metod som ska ta in ett int tal och returnera den första siffran men hänger ej med hur man ska göra

jag lyckas göra samma sak fast returnera den sista siffran och näst sista osv men inte den första

för den sista gör jag

public static int lastDigit(int n) {
            return n % 10;
}

och sen ökar jag 10 till 100 beroende på hur många siffror. Men hur gör man med den första siddran? är det något matematiskt eller måste man använda andra metoder?

 

edit: den postade meddelandet innan jag var klar

cjan1122 416
Postad: 15 jul 2020 17:08

Om du "måste" använda matte kan du dela talet på 10^(antal siffror-1) och använda Math.floor funktionen. Om du t.ex har 6234 ger den först 6,234 och floor ger 6,0 som du kan göra om till en int.

Annars kan du helt enkelt göra talet till en string och använda charAt(0) för att få första tecknet.

Smutstvätt 25070 – Moderator
Postad: 15 jul 2020 17:11

Det lättaste är nog att konvertera talet till en string, och köra String.length() på den, alternativt charAt(i). :)

Maremare 1044 – Fd. Medlem
Postad: 15 jul 2020 17:25

aa exakt hittade att man kunde gör till string men tänkte om det fanns någon annan metod med tanke på att de övriga gick att lösa med en enkel rad så tänkte om et fanns samma för den första siffran.

men då är jag med, tusen tack!

Laguna Online 30472
Postad: 15 jul 2020 18:56 Redigerad: 15 jul 2020 18:57

Du kan dela med 10 tills det blir 0 och sen returnera det du hade på varvet innan.

Vad vill du att det ska bli om talet är negativt? 

Smutstvätt 25070 – Moderator
Postad: 15 jul 2020 19:16

En lösning som inte kräver division (resurskrävande) är att jämföra ditt tal x, med ett exempeltal t. Börja med t = 10, och om x > t gäller, sätt t = t*10 och jämför igen. När din loop är slut har du ett t med samma storlek som ditt tal, som du sedan kan använda till moduloräkning. :)

Laguna Online 30472
Postad: 15 jul 2020 19:37

Tycker man att multiplikation är en tung operation kan man låta kompilatorn räkna ut en liten tabell. 

Svara
Close