• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak wyznaczyć ostatnią cyfrę liczby naturalnej?

Cloud VPS
+1 głos
13,308 wizyt
pytanie zadane 20 kwietnia 2015 w C i C++ przez Kornel Howil Początkujący (260 p.)
Jak w C++ wyznaczyć ostatnią cyfrę liczby naturalnej?

3 odpowiedzi

+4 głosów
odpowiedź 20 kwietnia 2015 przez Ehlert Ekspert (215,050 p.)
edycja 21 kwietnia 2015 przez Ehlert

Dzielisz Modulo przez 10;

int a =4594;
int a %= 10;
//a = 4

//mały algorytm

short ostatnia(long double arg)
{
    do{
       //mnożysz przez 10 dopóki liczba nie będzie naturalna
       arg*=10;
       //dzielenie ułamków modulo przez 1 daje wynik różny od zera
}while(arg%1!=0);

//z liczby naturalnej zwracasz ostatnią cyfrę (arg modulo przez 10 )
return arg%10;
//nie działa dla liczb z rozwinięciem okresowym/nieskończonym
}

 

komentarz 20 kwietnia 2015 przez Kornel Howil Początkujący (260 p.)
edycja 21 kwietnia 2015 przez joker
A gdy jest to bardzo duża liczba? Gdy jest long double wyskakuje error
komentarz 20 kwietnia 2015 przez hit02 Nałogowiec (33,970 p.)

Spróbuj

double fmod (double numer, double denom);

Błąd masz najpewniej dlatego, bo % (modulo), to operacja na liczbach całkowitych, a double jest zmiennoprzecinkowe. Funkcja fmod() robi to na floating-point'ach.

komentarz 21 kwietnia 2015 przez Ehlert Ekspert (215,050 p.)
Pytanie dotyczyło liczb naturalnych więc tylko takie uwzględniłem
komentarz 21 kwietnia 2015 przez hit02 Nałogowiec (33,970 p.)
Wiem, ale autor napisał w komentarzu o long double i dlatego napisałem.
+4 głosów
odpowiedź 20 kwietnia 2015 przez krecik1334 Maniak (58,390 p.)

Liczbe wczytujesz jako stringa.

string liczba;
cin >> liczba;
cout << liczba[liczba.length()-1] << endl;

Powinno wypisać ostatnią cyfrę. Działając na łańcuchach znakowych unikniesz wysypywania się zbyt dużych liczb do wczytania (większych niż 10^18).

0 głosów
odpowiedź 6 sierpnia 2015 przez Dragonet.17 Pasjonat (19,630 p.)
int liczba,k;
cin>>kiczba;
k=liczba%10; // ostatnia liczba

Podobne pytania

0 głosów
1 odpowiedź 1,547 wizyt
pytanie zadane 27 października 2018 w C# przez aXen Początkujący (390 p.)
0 głosów
1 odpowiedź 195 wizyt
pytanie zadane 22 lutego 2021 w C i C++ przez Rainbow99 Początkujący (430 p.)

93,456 zapytań

142,451 odpowiedzi

322,721 komentarzy

62,837 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...