Задача
Вычислить количество цифр целого неотрицательного числа $n$.
Входные данные
Одно целое неотрицательное число $n$ [latex](0 \ge n \ge 2\cdot10^9)[/latex].
Выходные данные
Количество цифр в числе $n$.
Тесты
Входные данные | Выходные данные |
12345 | 5 |
1 | 1 |
353628 | 6 |
5454 | 4 |
0 | 1 |
Код программы (с использованием условных операторов)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#include <iostream> using namespace std; int main() { int n; cin >> n; if( n <= 9 ) cout << 1; else if( n <= 99 ) cout << 2; else if( n <= 999 ) cout << 3; else if( n <= 9999 ) cout << 4; else if( n <= 99999 ) cout << 5; else if( n <= 999999 ) cout << 6; else if( n <= 9999999 ) cout << 7; else if( n <= 99999999 ) cout << 8; else if( n <= 999999999 ) cout << 9; else if( n <= 2000000000 ) cout << 10; return 0; } |
Код программы (без использования условных операторов)
1 2 3 4 5 6 7 8 9 10 |
#include <iostream> #include <string> using namespace std; int main() { string n; cin >> n; cout << n.length(); return 0; } |
Решение
Для первого решения задачи используем череду условных операторов ( if, else), сравнивая $n$ с концами промежутков чисел с соответствующим количеством цифр. Обойтись без них можно, задав переменную string, присвоив ей значение числа $n$ и используя функцию length()в выводе (перед этим подключив библиотеку string).
Признаться, я предполагал, что Вы используете логарифм по основанию 10, но так тоже подходит.
Спасибо, исправил.