Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 41, средняя оценка - 4.93
NARMIN
1 / 1 / 0
Регистрация: 23.05.2009
Сообщений: 18
#1

На сколько нулей оканчивается число? - Pascal

14.06.2009, 13:06. Просмотров 5541. Ответов 10
Метки нет (Все метки)

Вводится N. Необходимо найти, на сколько нулей оканчивается чило N!=1*2*3*...*N.
http://www.cyberforum.ru/pascal/thread106630.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.06.2009, 13:06
Я подобрал для вас темы с готовыми решениями и ответами на вопрос На сколько нулей оканчивается число? (Pascal):

Определить, является ли число кратно 3 и оканчивается ли на 6
Доброго времени суток всем! :) Прошу вашей помощи: Программа получает на...

Есть ли способ проще узнать оканчивается ли семизначное число на две семерки
Есть ли способ проще узнать оканчивается ли семизначное число на две семерки?...

сколько нулей находится до минимального значения
Доброго времени суток! Помогите пожалуйста. В одномерных массивах Е и F...

Создать массив В [1..30] Определить сколько нулей находится до минимального значения
Помогите решить такую задачку, заранее спасибо : Создать массив В Определить...

Определить, сколько нулей лежит вне минимального и максимального значений массива
определить, сколько нулей лежит вне минимального и максимального значений...

10
Dirol
2 / 2 / 0
Регистрация: 12.06.2009
Сообщений: 5
14.06.2009, 13:27 #2
Приблизительно так : считает факториал, IntToStr, потом считаем length(s) и далее отсчитываем 0 от конца циклом while, но скорее всего есть более простой способ))

Добавлено через 14 минут 36 секунд
http://www.cyberforum.ru/pascal/thread40008.html, а тут кстати написано как тебе n! посчитать.
1
Puporev
Модератор
54131 / 41764 / 28875
Регистрация: 18.05.2008
Сообщений: 98,291
14.06.2009, 13:42 #3
тут кстати написано как тебе n! посчитать.
Это только для n<=12. Здесь факториал считать не надо.
1
EnzoMatrix
120 / 120 / 14
Регистрация: 14.03.2009
Сообщений: 462
14.06.2009, 13:49 #4
считаем логарифм(N) по основанию 5, пусть это будет некоторое число, а его целая часть равна k
и теперь число нулей равно N div 5+ N *(k-1) div (5 в степени k)
вроде так должно быть, но немного не уверен
1
kentaw
421 / 129 / 33
Регистрация: 24.02.2009
Сообщений: 1,122
14.06.2009, 14:27 #5
2N+length(N)-1
1
Messenger of G.
Посланник моего господина
110 / 105 / 52
Регистрация: 02.05.2009
Сообщений: 181
14.06.2009, 14:31 #6
Количество нулей определяет количество 5, которые входят в числа от 1 до N.
Каждому вхождению 5 в ряд соответствует своё 2, которых гораздо больше, в своб очередь их произведение дает один 0. Учтем, что 25=5*5 — два вхождения 5, 250=5*5*5*2 — три вхождения и т.д.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var a,b,c,n:longint;
begin
write('>N=');
readln(N);
a:=0;
for c:=1 to n do
begin
  b:=c;
  while b mod 5 = 0 do
    begin
      b:=b div 5;
      inc(a);
    end;
end;
write('>Result: ',a,'.');
readln;
end.
Обратите внимание на формулу от CartmanRules! Возможно, она верна. В таком случае она красива и стоит задуматься над её применением.
1
EnzoMatrix
120 / 120 / 14
Регистрация: 14.03.2009
Сообщений: 462
14.06.2009, 14:41 #7
формула не верная там только для k<3, т.е. число не более 124
chislo_nuley:=0;
for i:=k downto 1 do
chislo_nuley+=N div (5 в степени i);
вот для общего вида
1
kentaw
421 / 129 / 33
Регистрация: 24.02.2009
Сообщений: 1,122
14.06.2009, 15:06 #8
А как будет, если до N кроме 5, есть 10, 100, 1000 и.т.д?

Добавлено через 21 минуту 59 секунд
Да Меsenger прав
Теорема. Число нулей в n! равно числу пар, составленных из простых чисел 2 и 5.
С.И.Туманов. "Поиски решения задачи" 1969, стр.273
1
Puporev
Модератор
54131 / 41764 / 28875
Регистрация: 18.05.2008
Сообщений: 98,291
14.06.2009, 15:20 #9
Решение как у Messenger of G. просто не все числа проверяю. Интернет отрубали, но все равно выложу.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
uses crt;
function Kol_5(z:integer):integer;
var k,i:integer;
begin
k:=0;
if z mod 5=0 then
while (z>0)and(z mod 5=0)do
  begin
    z:=z div 5;
    k:=k+1;
  end;
Kol_5:=k;
end;
 
var n:longint;
    i,j,k:integer;
begin
clrscr;
write('n=');
readln(n);
k:=0;
for i:=1 to n do
k:=k+Kol_5(i);
write('k=',k);
readln
end.
1
Jean-Esther
9 / 9 / 3
Регистрация: 28.02.2009
Сообщений: 66
14.06.2009, 15:25 #10
Зато я понял, что хотел сказать CartmanRules. Тут тоже ведется поиск пятерок.
Пусть km — наибольший показатель чистой степени 5 в этой последовательности. km = [Log_5 {N}].
Во вложениях показаны вхождения пятерки в число (в первом столбце — кратность 5, во втором — 25 и т.д.)
Нам нужно посчитать, сколько всего таких будет пятерок.
По первому столбцу их [N/5]
По второму — [N/25]
По k-му — [N/(5^k)], k=1,2,3,...,km.
Вот и имеем общую формулу.
0
Миниатюры
На сколько нулей оканчивается число?  
Изображения
 
Wren
0 / 0 / 1
Регистрация: 23.11.2012
Сообщений: 9
24.11.2012, 19:20 #11
А как через массив это сделать?
0
24.11.2012, 19:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.11.2012, 19:20
Привет! Вот еще темы с решениями:

Вычислить сколько подряд идущих нулей в конце десятичной записи числа
Пусть P(A, B) есть произведение всех целых чисел от A до B включительно. Для...

сколько положительных, отрицательных и нулей среди двух чисел, которые произвольно задаются
Определить, сколько положительных, отрицательных и нулей среди двух чисел,...

наибольшее число нулей идущих подряд
100 чисел в массиве сколько чисел в последовательности где наибольшее число...

Распечатайте наименьшее число столько раз, сколько наибольшее число
Дайте два числа. Распечатайте наименьшее число столько раз, сколько наибольшее...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru