Сколько нулей в произведении чисел от 1 до 100
Перейти к содержимому

Сколько нулей в произведении чисел от 1 до 100

  • автор:

На сколько нулей оканчивается произведение чисел от 1 до 100 делящ-ся на 5?

Очень интересный вопрос, для меня он оказался довольно сложным. Понятно, что таких чисел у нас 20, и понятно, что это за числа: 5, 10, 15, . 95, 100, из них 18 двузначных, одно трехзначное и пятерка. И понятно, что число получается просто огромным, я хотела, особо не задумываясь, выбрать максимальное из предложенных в вариантах ответов. Но нужно понимать, что далеко не все цифры в полученном числе будут нулями, нули будут давать только числа заканчивающиеся на 0, а не на 5. Это числа: 10, 20, 30, 40, 50, 60, 70, 80, 90, 100. Вот сколько у нас тут нулей, считаем, получается 11, но это если были бы девять десяток, но у нас то числа бОльшие. В общем, решила я все-таки потратить минут пять и посмотреть, что у меня получится, получилось гигантское число:

23201961595312500000­ 0000000000000, и мы видим, что именно нулей у него 18.

Сколько нулей в произведении чисел от 1 до 100

Задача по математике — 2786

comment

2019-05-06
Сколькими нулями оканчивается произведение всех целых чисел от 1 до 100 включительно?

Число пулей в конце числа показывает, сколько раз 10 встречается сомножителем в этом числе. Число 10 равно произведению $2 \cdot 5$; в произведении всех целых чисел от 1 до 100 множитель 2 входит в большей степени, чем множитель 5. Следовательно, произведение $1 \cdot 2 \cdot 3 \cdots 100$ делится на такую степень 10 (т. е. оканчивается на такое число нулей), сколько это произведение содержит множителей 5. Но до 100 имеется 20 чисел, кратных пяти, причем четыре из них (25, 50, 75 и 100) кратны также 25, т. е. содержат по два множителя 5. Следовательно, всего в произведении $1 \cdot 2 \cdot 3 \cdots 100$ число 5 встретится сомножителем 24 раза; поэтому и нулей в конце этого произведения будет 24.
Ответ: 24.

Найти количество нулей в записи чисел от 1 до n

Дано натуральное число n. Требуется найти кол-во цифр ‘0’, встретившихся в записи чисел от 1 до n, n
Отслеживать
5,185 3 3 золотых знака 25 25 серебряных знаков 49 49 бронзовых знаков
задан 8 янв 2014 в 16:49
miloserdow miloserdow
153 1 1 серебряный знак 6 6 бронзовых знаков

Очень не помешало бы несколько тестовых примеров (входные/выходные данные). И что сами думаете по этому поводу? Как пытались решать?

8 янв 2014 в 21:01

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

8 янв 2014 в 21:14

@ReinRaus ♦, переоткрыл, т.к задачка на самом деле какая-то головоломная. — Понятно, что надо считать количество десятков, сотен, тысяч и т.д и соответствующих остатков в n и понятно, что это делается в цикле while (n / 10) < dr[k] = n % 10; nn /= 10; dd[k++] = n; >а вот потом. что-то не складываются они правильно. Может Вам эта формула очевидна? Тогда поделитесь (невзирая на учебное задание).

8 янв 2014 в 21:35

@eicto, нужно посчитать количество нулей не в N, а во всех числах от 1 до N. И, очевидно, что решение «в лоб» не сработает при больших N.

8 янв 2014 в 22:33
я уже понял, там прогрессия какая-то.
8 янв 2014 в 23:05

1 ответ 1

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

Как и для большинства олимпиадных задач, для этой нашлось довольно короткое и быстрое решение. Решил ее так: рассматривал заданное число N по цифрам от младших разрядов к старшим. На каждом шаге имеются:

  • цифра в текущем разряде
  • число — младшие разряды (все что справа от текущей позиции)
  • число — старшие разряды (все что слева от текущей позиции)

1) Для первого разряда верно утверждение, что 0 там будет встречаться ровно такое число раз, которое осталось в старших разрядах. Т.е. для числа 234 , 0 в разрядах единиц будет встречаться 23 раза, для 105 — 10 раз и т.д.

2) Для остальных разрядов (десятки, сотни, тысячи и т.д.) нужно рассмотреть два случая — когда цифра больше нуля и когда она равна нулю:

  • Когда цифра в разряде больше нуля, то логика практически такая же как и для первого разряда: На этой позиции 0 будет встречаться ровно такое число раз, которое осталось в старших разрядах, но умноженное на 10 в степени текущего разряда. Поясню на примере: число 123 . На позиции двойки 0 будет встречаться 1 * 10 = 10 раз — для чисел 100 — 109 . Или, число 2308 : на позиции тройки 0 будет встречаться 2 * 100 = 200 раз. Это числа 1000-1099 и 2000-2099 .
  • Когда цифра в разряде равна нулю, то НЕВЕРНО утверждать, что 0 в ней встретиться столько раз, сколько было в предыдущем случае (когда цифра не равна нулю). Сейчас он там встретится меньшее число раз. Опять сразу перейду к примеру: число 201 . сколько раз 0 будет стоять в разряде десятков? Ответ — 12 . Это числа 100-109 , 200 и 201 . Так как же получить это число. Для этого нужно из числа в старших разрядах вычесть единицу, умножить его на 10 в степени текущего разряда и прибавить к этому произведению число в младших разрядах. И еще добавить единицу. Т.е. для приведенного выше числа 201 это будет 1 * 10 + 1 + 1 = 12 . Дополнительная единица нужна, чтобы не потерять число, когда младшие разряды равно нулю, это 200 в данном случае. (Долго шел к этому пункту, и извиняюсь за невнятное объяснение. Кому будет проще, то это действие у меня вызывает аналогию с вычитанием в столбик, когда вычитаемое содержит нули)

Ну и собственно, реализация алгоритма:

int rank = 1; // Номер разряда (начинаем с младших) long res = 0; // Результат long high = N; // Число в старших разрядах (изначально равно N) long low = 0; // Число в младших разрядах (изначально равно 0) while (high > 0) < long digit = high % 10; // Текущая цифра high = high / 10; // Уменьшаем число в старших разрядах if (rank >1 && digit == 0) < res += ((high - 1) * rank) + (low + 1); // Случай 2.2 >else < res += high * rank; // Случаи 1 и 2.1 >low += rank * digit; // Увеличиваем число в младших разрядах rank *= 10; // Переходим к следующему разряду > // output res 

Задание с натуральными числами

Сколькими нулями заканчивается произведение всех натуральных чисел :
а) 1 до 15 б) от1 до 25 в) от 1 до 30?

Очень просто. 0 получается, когда число, кратное 5, умножается на четное число. 2х*5у=10ху. В интервале о 1 до 15 у нас 3 числа, кратных 5: 5, 10 и 15. Два четных числа, чтобы превратить 5ки в 0 найдутся. Т.о. у нас на конце произведения будут три нуля

а)тремя нулями, так как три числа делятся на пять.б) шесть, на пять делятся 5. 10, 15 , 20 и 25, но содержит два множителя 5. в) 7.

Задайте свой вопрос по математике
профессионалам

● Сейчас онлайн 75 репетиторов по математике
Получите ответ профи быстро и бесплатно

Другие вопросы на эту тему:

Как понять и решить

Одна копейка с 10-ю нулями

Помогите!очень сложно!

все двузначные числа, не оканчивающиеся нулями, выписываются одно за другим так, что каждое следующее начинается с такой цифры, которая оканчивается предыдущим.получается некоторое многозначное число.из всех многозначных чисел, которые можно получить таким образом выбирают наименьшее и наибольшее.найди их сумму.
ф)111. 111. 1100-162 ед.2 нуль, б) 111. 1111. 1110-162 ед.1нуль, в) 111. 111..11-164 ед.нет нуля, г) 999. 999. 111-3-ед. 99-девяток

Сколькими нулями оканчивается произведение всех чисел от 1 до 100?

На сколько нулей заканчивается число 100!…

На сколько нулей заканчивается число 100! (произведение всех целых чисел от 1 до 100)? «

(понятно дело — простенькая, но, кто-то ознакомится впервые)

Прогрессия

Найти трехзначное число, цифры которого образуют (в том порядке, в котором они стоят в числе) возрастающую арифметическую прогрессию и которое делится на 45.

множество трехзначных чисел, делящихся на 45, задаются формулой
x = 45*n
n_ = 3 → первое число 45*3 = 135
n_ = 22 → последнее число 45*22 = 990

если n = 3, то x = 135 → 1, 3, 5 — это ар. пр. с разностью d = 2.

Я знаю, как с помощью арифметической…

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

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