Форум программистов, компьютерный форум, киберфорум
Наши страницы

Pascal (Паскаль)

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 41, средняя оценка - 4.93
NARMIN
1 / 1 / 0
Регистрация: 23.05.2009
Сообщений: 18
#1

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

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

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

Определить, сколько слов оканчивается буквой К - Pascal
Помогите пожалуйста составить хотя бы одну из этих программ 1.Определить сколько слов оканчивается буквой К 2.Получить новую...

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

Есть ли способ проще узнать оканчивается ли семизначное число на две семерки - Pascal
Есть ли способ проще узнать оканчивается ли семизначное число на две семерки? Сделал как-то так: if (((((A div 1000000) div 100000) div...

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

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

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

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
Модератор
52403 / 40250 / 13582
Регистрация: 18.05.2008
Сообщений: 93,048
14.06.2009, 13:42 #3
тут кстати написано как тебе n! посчитать.
Это только для n<=12. Здесь факториал считать не надо.
1
EnzoMatrix
120 / 120 / 5
Регистрация: 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 / 4
Регистрация: 24.02.2009
Сообщений: 1,123
14.06.2009, 14:27 #5
2N+length(N)-1
1
Messenger of G.
Посланник моего господина
109 / 104 / 8
Регистрация: 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 / 5
Регистрация: 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 / 4
Регистрация: 24.02.2009
Сообщений: 1,123
14.06.2009, 15:06 #8
А как будет, если до N кроме 5, есть 10, 100, 1000 и.т.д?

Добавлено через 21 минуту 59 секунд
Да Меsenger прав
Теорема. Число нулей в n! равно числу пар, составленных из простых чисел 2 и 5.
С.И.Туманов. "Поиски решения задачи" 1969, стр.273
1
Puporev
Модератор
52403 / 40250 / 13582
Регистрация: 18.05.2008
Сообщений: 93,048
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 / 1
Регистрация: 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 / 0
Регистрация: 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
Привет! Вот еще темы с ответами:

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

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

Дано натуральное число, выяснить, каких цифр больше нулей или единиц - Pascal
Дано натуральное число, выяснить, каких цифр больше нулей или единиц

найти самую длинную непрерывную цепочку нулей в последовательности нулей и единиц - Pascal
Требуется найти самую длинную непрерывную цепочку нулей в последовательности нулей и единиц. В единственной строке входного файла записана...


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

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

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