ďťż

Ładny brzuch

jak napisac program (oczywiscie w c++), ktory bedzie pokazywal z ilu cyfr sklada sie podana liczba naturlna, moze ktos wie z jakich funkcji trzeba tu skorzystac?? jesli tak to prosze o pomoc <_<
Użytkownik Hunt3r edytował ten post 16 marzec 2006, 09:28


Jest więcej możliwości, ale najprościej będzię uzyć itoa, a następnie strlen na wyniku.

Możesz, też dzielić liczbę przez 10 aż dojdziesz do zera (pamiętaj o zliczaniu dzieleń - to będzie wynik).


Jest więcej możliwości, ale najprościej będzię uzyć itoa, a następnie strlen na wyniku.



W sumie itoa nie jest w standardzie, więc lepiej będzie użyć sprintf.
Na przykład tak:
#include <stdlib.h> int main() {  int liczba;  char tekst[50] = {};  printf("Podaj liczbe naturalna:\n");  scanf("%i", &liczba);  sprintf(tekst, "%i", liczba);  printf("Ilosc cyfr w podanej liczbie to %i.\n", strlen(tekst));  return 0; }

Drugi sposób:
#include <stdlib.h> int main() {  int liczba, cyfry = 0;  printf("Podaj liczbe naturalna:\n");  scanf("%i", &liczba);  while (liczba)  {    liczba /= 10;    cyfry++;  }  printf("Ilosc cyfr w podanej liczbie to %i.\n", cyfry);  return 0; }
Użytkownik Chmurek edytował ten post 16 marzec 2006, 15:41

jak napisac program (oczywiscie w c++), ktory bedzie pokazywal z ilu cyfr sklada sie podana liczba naturlna, moze ktos wie z jakich funkcji trzeba tu skorzystac?? jesli tak to prosze o pomoc  <_<

Samo liczenie logarytmu jest dość powolne, ale w sumie można ułożyć algorytm, którzy sprawdzałby po prostu w jakim przedziale znajduje się liczba. Najpierw sprawdzałby czy moduł z niej jest mniejszy od 10, jeśli nie to czy mniejsz y od 10*10, jeśli nie to czy od 10*10*10 i tak dalej.

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •