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

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

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

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

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

textual
Листинг программы
#include <iostream>
using namespace std;
 
int numDigits(long int x)
{
    int cnt = 1;
    if (x >= 100000000)
    {
        cnt += 8;
        x /= 100000000;
    }
    if (x >= 10000) 
    {
        cnt += 4; 
        x /= 10000;
    }
    if (x >= 100)
    { 
        cnt += 2;
        x /= 100;
    }
    if (x >= 10) cnt++;
    return cnt;
}
 
int main()
{
    long x;
    cin >> x;
    cout << numDigits(x);
}

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

В этом коде функция 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
Похожие ответы