jak w C++ sprawdzić z ilu cyfr składa się wpisana liczba? wie ktoś?
neno@op.pl
0
0
int(1+(log(abs(liczba))/log(10)));
0
wielkie dzięki sam bym na to chyba nigdy nie wpadł
0
ale mam małe zastrzezenia. Bo ten wzor widze odnosi sie tylko do typu int i przy wiekszej liczbie "sie myli" czy ktos cos na to moze poradzic? zebym mogl liczyc cyfry poprawnie i w wiekszych liczbach? moze jest jakas funkcja do tego?
0
inline unsigned ile_cyfr(unsigned long liczba)
{
return log10l(liczba) + 1;
}
0
Wez jej modul, wrzuc ja do lancucha i zbadaj jego dlugosc. Zrob poprawke na ewentualna kropke dziesietna.
0
wystarczy pozmieniac odpowiednio dla:
int, float, double
//---------------------------------------------------------------------------
#include <iostream>
using namespace std;
int ile(int liczba)
{
int suma=0;
while(liczba)
{
liczba=liczba/10;
suma++;
}
return suma;
}
int main(int argc, char* argv[])
{
int a;
cout<<"podaj a=";
cin>>a;
int x;
x=ile(a);
cout<<"zawiera:"<<x<<endl;
system("pause");
return 0;
}
//---------------------------------------------------------------------------
A dla liczby typu np.
121243292083928928492383284923759279732592379873295
proponuje stos zastosować :) i bez problemu bedzie
0
gesiek20, Twoj algorytm zdecydowanie nie bedzie dzialal dla typow zmiennoprzecinkowych:(