• 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?

Object Storage Arubacloud
+1 głos
12,517 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 (212,670 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 (212,670 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,286 wizyt
pytanie zadane 27 października 2018 w C# przez aXen Początkujący (390 p.)
0 głosów
1 odpowiedź 149 wizyt
pytanie zadane 22 lutego 2021 w C i C++ przez Rainbow99 Początkujący (430 p.)

92,579 zapytań

141,432 odpowiedzi

319,664 komentarzy

61,964 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...