Witam, mam kłopot z napisaniem programu, który będzie wczytywał liczbę całkowitą z klawiatury i ma on obliczyć ilość cyfr z jakich składa się ta liczba (wiem, ze należy tu wykorzystać dzielenie całkowite przez 10 jednakże w praktyce mi to nie wychodzi). Proszę o pomoc.
Wiem, ze byl ale bym prosił o wytłumaczenie to w prostszy sposób może chciaż kawałek napisać. Nie wiem w jaki sposób zwiększać licznik. Oraz czy zrobić to za pomocą do while, czy moze petla for?
A co to za różnica? Wychodzi na jedno.
Ogólnie algorytm jest prosty(dla dowolnej bazy, gdzie baza > 1, dla Ciebie bazą będzie liczba 10):
dopóki liczba > 0 rób
licznik += 1
liczba /= baza
To taki pseudokod Działa dla każdej liczby(lecz ujemnych nie sprawdzałem, ale powinno działać).
EDIT: Aż sam się zdziwiłem, że to napisałem. Nigdy nie powielałem informacji(które już istnieją na tym forum). No ale mam dziś(o dziwo) bardzo dobry dzień.
Po co tak komplikować?
unsigned LiczbaCyfr=1+log10(liczba); //dla reprezentacji dziesiętnej [/code]
Dla innych systememów
[code=php]unsigned LiczbaCyfr=1+log(liczba)/log(2); //dla reprezentacji w systemie dwójkowymunsigned LiczbaCyfr=1+log(liczba)/log(8); //dla reprezentacji w systemie osiemkowymunsigned LiczbaCyfr=1+log(liczba)/log(16); //dla reprezentacji w systemie szesnastkowym
Nie zapomnieć dołączyć:
#include [/code]
Wiem, że można i tak, ale chciał wykorzystać pętle, więc ma z pętlami
A gdyby chciał z użyciem fraktalów tez by zacząłeś w tym kierunku kombinować?