Vad gör % 10
Hej!
Varför plockar detta ut talet vid plats index?
Vad gör % 10 ?
Jag tänkte att det delar med tio heltalsdivition och sparar resten men vet inte varför hela uttrycket fyller sitt syfte då:
int n_digits(int number) { //detta ska räkna ut hur många siffror som finns i ett tal.
int i = 0;
while (0 < number) {
number = number / 10;
i++; }
int get_digit_at_index(int number, int index) {
int i = n_digits(number);
while (index < i - 1) {
number = number / 10;
index++;
}
number = number % 10;
return number;
}
Har du provat att köra "för hand" på papper med någon typisk input, t.ex. get_digit_at_index(3127, 2)?
Om du menar att du inte alls vet vad operatorn % gör, så ger den resten när man delar den första operanden med den andra. T.ex. 943 % 10 blir 3.
Vad är skillnaden mellan % 1 och % 10 ?
Jag vet att det ger resten men vad gör siffran efter % ?
Elias93 skrev:Vad är skillnaden mellan % 1 och % 10 ?
Jag vet att det ger resten men vad gör siffran efter % ?
% 1 ger resten när man delar med 1, och det blir ingen rest, så det är alltid 0.
ah nu börjar jag förstå. Det tar delat med 10 i loopen tills index är samma som antalet nummer som ännu finns kvar efter /10. Sen efter loopen plockar det ut en tiondel av talet, alltså den sista siffran i nummret som är kvar.
Stämmer det?
Elias93 skrev:ah nu börjar jag förstå. Det tar delat med 10 i loopen tills index är samma som antalet nummer som ännu finns kvar efter /10. Sen efter loopen plockar det ut en tiondel av talet, alltså den sista siffran i nummret som är kvar.
Stämmer det?
Det stämmer.