2013-03-31 11 views
16

Jak uzyskać ostatnią cyfrę numeru. np. jeśli 1232123, 3 będzie wynikiem:Jak uzyskać ostatnią cyfrę numeru

Potrzebuję trochę wydajnej logiki, aby łatwo było uzyskać wyniki o dużych liczbach. Po uzyskaniu ostatniego numeru potrzebuję trochę przetwarzania.

Thanks a lot

+1

próby podziału modułu, podzielenie przez operatora (10%) –

+0

reszta z dzielenia modulo przez 10 jest ostatnią cyfrą :) –

Odpowiedz

35

Wystarczy wziąć mod 10:

Int32 lastNumber = num % 10; 
+0

Jest to reszta, nie iloraz. –

+0

termin nie jest dzielony Myślę, że odpowiedź jest właściwa ... – Dani

11

To tylko numer modulo 10. Na przykład w C

int i = 1232123; 
int lastdigit = (i % 10); 
5

Oto brute sposób siła, która poświęca wydajności dla oczywistość:

int n = 1232123; 
int last = Convert.ToInt32(n.ToString() 
          .AsEnumerable() 
          .Last() 
          .ToString()); 
+0

lol, wiedziałem, że to zostanie odrzucone, a to zajęło wszystkie 1ms :) –

+0

To nie jest zbyt oczywiste ... – MrKWatkins

+0

oczywiste w porównaniu do co? modding o 10? –

2
The best way to do this is -> int lastNumber = (your number) % 10; 
And if you want to return the last digit as string you can do this switch 

      (number % 10) 
      { 
       case 0: 
        return "zero"; 
       case 1: 
        return "one"; 
       case 2: 
        return "two"; 
       case 3: 
        return "three"; 
       case 4: 
        return "four"; 
       case 5: 
        return "fife"; 
       case 6: 
        return "six"; 
       case 7: 
        return "seven"; 
       case 8: 
        return "eight"; 
       case 9: 
        return "nine"; 
      } 
1

Innym sposobem jest ..

var digit = Convert.ToString(1234); 
var lastDigit = digit.Substring(digit.Length - 1); 
Powiązane problemy