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

Как посчитать количество нулей в числе с

  • автор:

Найти количество нулей во всех числах последовательности

Основы программирования 2.0

Задача 0.4
Дана последовательность чисел, заданная пользователем. Найти количество нулей во всех числах последовательности.

В этот раз решил немного отойти от традиций и решить задачу на нескольких языках. А именно: 1) Паскаль; 2) С++; 3) JavaScript; 4) VBScript; 5) VBA.

А сподвигла меня на это просьба одного из читателей, который и попросил помочь в решении этой задачи. Правда, просил он только о VBA, но я решил расширить эту просьбу. И хотя к тому времени, когда я собрался это сделать, для читателя задача уже была неактуальна, я решил таки её решить — вдруг кому-то ещё пригодится.

ПРИМЕЧАНИЕ
Скачать исходные коды всех примеров можно здесь.

Как найти количество нулей в строке

В заголовке, в общем то, отражена суть решения задачи. Нам надо просто подсчитать количество нулей в строке, которую ввёл пользователь.

В большинстве языков программирования с вводом строки не будет никаких сложностей (хотя есть особенности — о вводе данных более подробно расскажу ниже).

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

Пример на Паскале

//------------------------------------------------------------------- // Вычисляет и возвращает количество нулей в строке st //------------------------------------------------------------------- function GetZerosNum(st : string) : word; var i, n : word; begin n := 0; for i := 1 to Length(st) do if st[i] = '0' then Inc(n); Result := n; end;

Пример на С++

unsigned int GetZerosNum(string st)

Пример на JavaScript

function GetZerosNum(st)

Пример на VBScript и VBA

'-------------------------------------------------------------------- ' Вычисляет и возвращает количество нулей в строке st '-------------------------------------------------------------------- function GetZerosNum(st) n = 0 for i = 1 to Len(st) if Mid(st, i, 1) = "0" then n = n + 1 next GetZerosNum = n end function

Ну вот как-то так. Теперь ещё осталось разобраться с вводом данных. Для всех случаев я решил использовать глобальную переменную str , в которую буду получать строку, введённую пользователем.

В Паскале никаких сложностей с этим нет — просто используйте

Снова и снова убеждаюсь, что Паскаль — это очень крутой и простой язык. А вот в С++ всё будет не так просто. Если вы используете cin , то будете неприятно удивлены тем обстоятельством, что строка будет прочитана только до первого пробела. Поэтому придётся сделать так:

Найти количество нулей в строке на Паскале и С++

В JavaScript я использовал поле ввода. Как это делается, я рассказал здесь.

Найти количество нулей в строке на JavaScript

В VBScript я использовал диалоговое окно для ввода данных. Подробно об этом я рассказал в книге Как стать программистом.

Найти количество нулей в строке на VBScript

VBA — это язык, о котором я раньше вообще не рассказывал. Не буду рассказывать и сейчас, потому что это тема отдельного разговора. Скажу только, что для примера я использовал файл Excel, в котором размести кнопку и связал её с макросом, который и вызывает функцию GetZerosNum .

Пользователь вводит данные в ячейку таблицы Excel, а макрос на языке VBA читает данные из этой ячейки и подсчитывает количество нулей. Итог расчета выводится в другую ячейку.

Найти количество нулей в строке на VBA

Что из всего этого получилось, см. на рисунках.

Ну вот и всё. Надеюсь, вам было любопытно понаблюдать как творят программисты на разных языках. И, как видите, дело не в языке — дело в том, что именно для вашей задачи более удобно. И пусть этот простой пример не так ярко показывает возможности разных языков, но он однозначно показывает, что все языки по своему хороши.

ВНИМАНИЕ!
Если вам что-то осталось непонятно в примерах на Паскале, С++ и JavaScript, то советую почитать книги “Основы программирования”, “Основы С++” и “Что такое JavaScript”.

Как подсчитать количество нулей на конце числа?

Два подхода: 1 — преобразовать число в строку, потом идти циклом от конца строки и считать символы ‘0’ . 2 — в цикле делить число на 10, считать сколько раз поделится делится без остатка.

14 сен 2020 в 12:03

5 ответов 5

Сортировка: Сброс на вариант по умолчанию

Будём считать количество нулей следующим образом: Если число делится на 10, то делить его и увеличивать значение переменной countZero — иначе нету смысла искать нули, их попросту нет)

По правилу делимости на 10 следует, что если число оканчивается на «0» то число делится на «10».

Краткое решение на python:

n = int(input()) if (n == 0): print(1) exit() countZero = 0 while (n % 10 == 0): n //= 10 countZero += 1 print(countZero) 

Как можно узнать количество нулей в числе?

К примеру есть число 1000000 .
Как узнать сколько в данном числе нулей?
Интересуют только числа вида 10 в степени «кол-во нулей».

  • Вопрос задан более трёх лет назад
  • 2226 просмотров

Комментировать
Решения вопроса 2

Вычислить логарифм по основанию 10.

10^x = a
x = log10(a)

Ответ написан более трёх лет назад
Комментировать
Нравится 3 Комментировать

0xD34F

int count = 0; while (val >= 10) < count++; val /= 10; >

Условие

Дано N чисел: сначала вводится число N, затем вводится ровно N целых чисел. Подсчитайте количество нулей среди введенных чисел и выведите это количество. Вам нужно подсчитать количество чисел, равных нулю, а не количество цифр.

Решение

num_zeroes = 0 for i in range(int(input())): if int(input()) == 0: num_zeroes += 1 print(num_zeroes)

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

ЕГЭ на соточку для чайников

Прошу прощения, что так долго пропадал. Питошка вернулся, да еще и с группой в вконтакте, подписывайтесь. Помимо этого, на питошке откроется новая рубрика, в которой будут четкие объяснения всех заданий ЕГЭ и ОГЭ по информатике, внимательно прочитав которые, я уверен, вы улучшите свои баллы на экзамене ��

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

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