Задача взята с сайта e-olymp.
Условие
Вычислить количество цифр целого неотрицательного числа [latex]n[/latex].
Входные данные
Одно не отрицательное целое число [latex]n[/latex] [latex](0<=n<=2*10^9)[/latex].
Выходные данные
Количество цифр в числе [latex]n[/latex].
Тесты
| Число | Количество цифр | 
| 1 | 1 | 
| 20 | 2 | 
| 123 | 3 | 
Код
| 1 2 3 4 5 6 7 8 9 10 | #include <iostream> using namespace std; int main() { 	int x, n=1; 	cin >> x; 	while ((x/=10) > 0) n++; 	cout << n; 	return 0; } | 
Решение
Сначала объявляем переменную [latex] n [/latex] для подсчета цифр в числе и присваиваем ей значение 1. Далее используем цикл while, проверкой которого ставим деление числа на 10 — так как тип числа int, это «отбрасывает» последнюю цифру в числе. Пока результат проверки истинный, инкриментируем n на 1.
Альтернативное решение с помощью десятичного логарифма
Сначала проверяется, не является ли введенное число нулем, так как невозможно посчитать любой логарифм от нуля. Если число отлично от нуля, находим десятичный логарифм от числа, прибавляем к нему единицу (что соответствует количеству цифр в числе). Берем целую часть от найденного, в случае, если число не кратно 10.
| 1 2 3 4 5 6 7 8 9 10 | #include <iostream> #include <cmath> using namespace std; int main() { 	int x; 	cin >> x; 	cout << (x==0? 1: int (log10 (x) + 1)); 	return 0; } | 
