Перейти к содержимому

Как посчитать количество цифр в числе с

  • автор:

Количество цифр

Время от времени перед программистом стает задача нахождения количества цифр в числе. Есть много способов решения этой задачи. В статье мы рассмотрим наиболее популярные из них.

Длина строки

Это очень простой вариант определения количества цифр, заключается в переводе числа в строковое представление с последующим определением длины строки.

Такой метод компактный и интуитивно понятный, однако он сильно проигрывает в быстродействии другим вариантам.

Десятичный логарифм

Использование десятичного логарифма для определения количества цифр в числе, позволяет производить вычисление за линейное время.

как узнать количество цифр числа в с ++?

Я хочу узнать количество цифр числа в С++, но я не знаю, что я могу сделать? например, число цифр 7676575.

5 ответов

Возьмите потолок логарифма базы-10 числа. (Или, в более общем случае, «base-N» для числа цифр в базе N.)

В коде: std::ceil(std::log10(n + 1)) и убедитесь, что #include <cmath> .

(Вы получите ответ 0 для ввода 0 в качестве специального случая. Это зависит от вас, что делать с отрицательными номерами.)

Код в ответе @Knaģis, возможно, более эффективен, так как деления на константу 10 могут быть превращены в умножения компилятором и довольно дешевы. Вы должны профилировать и сравнивать, если это зависит от формы, и важно, если это относится только к целочисленным типам. Логарифмический подход также позволяет вам и застенчиво вычислять количество цифр в гипотетическом десятичном расширении очень больших чисел с плавающей запятой.

Как определить количество цифр в числе C#?

Чтобы программно посчитать количество разрядов числа, необходимо последовательно его делить нацело на 10, пока это число не станет равным нулю. При этом считать количество делений. Например, дано число 345. После первого деления останется 34, после второго – 3, после третьего – 0.

Сколько цифр в int?

Тип int служит для представления 32-битных целых чисел со знаком. Диапазон допустимых для этого типа значений — от -2147483648 до 2147483647.

Как складывать числа в C#?

Для сложения используйте символ + .

Как посчитать количество цифр в строке C#?

    строка. Подсчитать количество содержащихся в ней цифр. */
  1. static int IndexOfChar(string s)
  2. <
  3. return s. IndexOf(‘1’ );
  4. >
  5. string NewStr = Console. ReadLine();
  6. if (IndexOfChar(NewStr) == -1)
  7. WriteLine(«Строка не содержит цифр«);

Как посчитать количество чисел в промежутке?

Таким образом, чтобы найти количество целых чисел между нецелыми положительными числами n и m (m>n), надо из целой части большего числа вычесть целую часть меньшего числа. Пример. Решение:k=87-2=85.

Сколько раз встречается слово в списке Python?

Каждое слово только один раз!

Сколько цифр в одном числе JS?

В современном JavaScript существует два типа чисел: Обычные числа в JavaScript хранятся в 64-битном формате IEEE-754, который также называют «числа с плавающей точкой двойной точности» (double precision floating point numbers).

Что такое разряд по математике?

Разряды : сотни, десятки, единицы

Разряд — это место, на котором в записи числа стоит цифра. Разряд единиц — это самый наименьший разряд, на которым заканчивается любое натуральное число. Разряд десятков — это разряд, который стоит перед разрядом единиц. Разряд сотен — это разряд, который стоит перед разрядом десятков.

Как найти длину числа в Java?

Метод length() — возвращает длину строки в Java. Длина равна числу 16-разрядных символов Юникода в строке.

Как подсчитать количество введенных чисел Java?

  1. Ввести с клавиатуры неопределенное количество элементов(цифер). Используя BufferedReader.
  2. Составить массив из этих чисел.
  3. Посчитать количество элементов(чисел) в массиве.
  4. Сложить элементы и найти среднеарифметическое значение.

Что означает int?

Функция int() возвращает его значение в десятичной системе счисления. Для двоичной, восьмеричной и шестнадцатеричной систем счисления можно использовать префиксы. Если такое представление числа заключается в кавычки, то второй аргумент обязателен. Итак, функция int() всегда возвращает десятичное целое число.

Какое максимальное целое число без знака можно сохранить в 32 битах?

В C целое число (для 32-битного компьютера) составляет 32 бита, и оно колеблется от —32 768 до + 32 767. В Java целое число также составляет 32 бита, но оно варьируется от -2 147 483 648 до + 2 147 483 647.

Сколько цифр в числе 2 в 100 степени?

2 100 = (1024) 10 > 1000 10 , поэтому число 2 100 имеет не меньше 31 цифры.

Как посчитать количество цифр в числе с

Примеры:
123 — 3 цифры.
45677 — 5 цифр.

Подход к решению такой:
1. если число отрицательное — то меняем знак;
2. заводим счетчик, изначально равный нулю;
3. делим число на 10 без остатка, например при делении 123 на 10 получится 12. Таким образом, мы «отбросили» младший разряд (цифру);
4. увеличиваем счетчик (ведь одну цифру отбросили);
5. если число больше нуля — переходим на п. 2.
6. счетчик содержит результат работы программы.

Исходный код программы:

Вычисление суммы цифр числа можно сделать так:

1) Преобразовать число в строку (различными способами) и найти сумму символов в ней;

2) Использовать операцию получения остатка от деления деления на 10 (вернет младший разряд числа) и целочисленного деления на 10 (эквивалентна сдвигу числа вправо) — такой подход уже использовался выше при вычислении количества цифр.

Как определить количество цифр целого числа в C?

Я думаю, я мог бы просто превратить его в строку, а затем получить длину строки, но это кажется запутанным и рубить-й.

19 ответов

или сырая скорость:

те выше были изменены, чтобы лучше обрабатывать MININT. На любых странных системах, которые не следуют за sensible 2 n два правила дополнения для целых чисел, они могут нуждаться в дальнейшей корректировке.

версия raw speed фактически превосходит версию с плавающей запятой, измененную ниже:

С a сто миллионов итераций, я получаю следующие результаты:

это меня немного удивило — я думал, что чипы Intel имеют приличный FPU, но я думаю, что общие операции FP все еще не могут конкурировать с оптимизированным вручную целочисленным кодом.

обновить следующие предложения stormsoul:

тестирование многократно-итеративного решения stormsoul дает результат 4 секунд, поэтому, в то время как это намного быстрее, чем разделительно-итеративное решение, он по-прежнему не соответствует оптимизированному решению if-statement.

выбор аргументов из пула 1000 случайно сгенерированных чисел подтолкнул время необработанной скорости до 2 секунд, поэтому, хотя кажется, что может быть некоторое преимущество в том, что каждый раз один и тот же аргумент, это по-прежнему самый быстрый подход.

компиляция с-O2 улучшила скорости, но не относительные позиции (я увеличил количество итераций в десять раз, чтобы проверить этот.)

любой дальнейший анализ должен серьезно проникнуть во внутреннюю работу эффективности процессора (различные типы оптимизации, использование кэшей, прогнозирование ветвей, какой процессор у вас на самом деле есть, температура окружающей среды в комнате и так далее), которая будет мешать моей платной работе :-). Это была интересная диверсия, но в какой-то момент отдача от инвестиций для оптимизации становится слишком маленькой, чтобы иметь значение. Я думаю, у нас достаточно решений, чтобы ответить вопрос (который, в конце концов, не о скорости).

это будет мое последнее обновление для этого ответа исключая вопиющие ошибки, которые не зависят от архитектуры. Вдохновленный доблестными усилиями stormsoul по измерению, я публикую свою тестовую программу (измененную в соответствии с собственной тестовой программой stormsoul) вместе с некоторыми образцами цифр для всех методов, показанных в ответах здесь. Имейте в виду, что это на конкретной машины, ваш пробег может варьироваться в зависимости от того, где вы его запускаете (поэтому я публикую тестовый код).

сделать с ним, как вы хотите:

помните, что вы должны убедиться, что вы используете правильную командную строку для компиляции. В частности, ты!—27—>мая нужно явно перечислить математическую библиотеку, чтобы получить log10() работает. Командная строка, которую я использовал в Debian, была gcc -o testprog testprog.c -lm .

и, с точки зрения результатов, вот лидер-доска для моего окружения:

Как правильно найти количество цифр заданного целого числа?

Мой код проходит по всем тестам на 90% , не проходит один тест. Проблему почему не проходит на все 100 — не нашёл..

Условие: Найти количество цифр заданного целого числа number .

Пример: вводим число 37 должно вывести число 2 .

user avatar

Почти наверняка в том единственном тесте вводится 0 .

Делать условие именно на то, что юзер введёт цифру 0, и нужно вывести 1. Както колхозно, как можно реализовать без етого?

Делать отдельно условие нормально, но если есть желание сделать без условия, то можно и без него:

Если вводите с консоли, то и не нужно рассматривать последовательность цифр как число. Можно просто читать и "выбрасывать" символы_цифры, с увеличением счетчика:

Вариантов решения много. Задание должно четко выразить что критично и каким образом задается объект. Потому что "задано число" наталкивает написать функцию с целочисленным аргументом, а пример рождает вопрос "откуда вводится?".

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Школа онлайн с государственным аттестатом