Найти количество цифр в заданном числе - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Добрый вечер, народ. Помогите решить задачку:
Вычислить количество цифр целого неотрицательного числа n. Входные данные: Одно целое неотрицательное число n от 0 до 2 * (10 ^ 9) включительно Выходные данные: Количество цифр в числе n.
Но есть одна проблема, самое главное в этой задаче не результат, а скорость!!! Не знаю как лучше всего добиться производительности.

Решение задачи: «Найти количество цифр в заданном числе»

textual
Листинг программы
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int numDigits(long int x)
  5. {
  6.     int cnt = 1;
  7.     if (x >= 100000000)
  8.     {
  9.         cnt += 8;
  10.         x /= 100000000;
  11.     }
  12.     if (x >= 10000)
  13.     {
  14.         cnt += 4;
  15.         x /= 10000;
  16.     }
  17.     if (x >= 100)
  18.     {
  19.         cnt += 2;
  20.         x /= 100;
  21.     }
  22.     if (x >= 10) cnt++;
  23.     return cnt;
  24. }
  25.  
  26. int main()
  27. {
  28.     long x;
  29.     cin >> x;
  30.     cout << numDigits(x);
  31. }

Объяснение кода листинга программы

В этом коде функция numDigits() принимает целое число в качестве аргумента и возвращает количество цифр в этом числе. Алгоритм работает следующим образом:

  1. Переменная cnt инициализируется значением 1, которое соответствует количеству цифр в числе 1.
  2. Если число x больше или равно 100000000, то к cnt добавляется 8, и число x делится на 100000000. Это позволяет учесть числа от 100000000 до 999999999, которые имеют 8 цифр.
  3. Если число x больше или равно 10000, то к cnt добавляется 4, и число x делится на 10000. Это позволяет учесть числа от 10000 до 99999, которые имеют 4 цифры.
  4. Если число x больше или равно 100, то к cnt добавляется 2, и число x делится на 100. Это позволяет учесть числа от 100 до 999, которые имеют 2 или 3 цифры.
  5. Если число x больше или равно 10, то к cnt добавляется 1, так как числа от 10 до 99 имеют 1 цифру.
  6. Возвращается значение cnt, которое и есть количество цифр в числе x. В функции main() вводится число x с помощью ввода с клавиатуры, а затем выводится результат работы функции numDigits() с помощью вывода на экран.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы