![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Dik |
![]() ![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 5 Пол: Мужской Репутация: ![]() ![]() ![]() |
на сколько нулей заканчивается n! ????
|
Amro |
![]()
Сообщение
#2
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 146 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата на сколько нулей заканчивается n! ???? В смысле? -------------------- Закон иудеев: Семь раз отмерь, один отрежь.
Закон экономии: Семь раз отмерь, семь раз отрежь. Закон программиста: Семь раз отрежь, ошибся, отмерь. |
Флогримм |
![]()
Сообщение
#3
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 253 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата на сколько нулей заканчивается n! ???? зависит от n -------------------- Я не буду жить с этой злобой внутри / Я не буду частью смертельной цепи / Я не буду потребителем твоих идей / Я не буду никогда убивать зверей (Unconform)
|
Altair |
![]()
Сообщение
#4
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Вот он и спрашивает как зависит.
Алгоритм такой: считаешь факториал (эта тема неоднократно обсуждалась) а затем устраиваешь цикл, напрмиер : (n - полученный факториал, s - количество нулей считаем) Код repeat If n mod 10 =0 then beginn:= n div 10; inc(s); end; until n mod 10 <> 0; writeln(s); -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
volvo |
![]()
Сообщение
#5
|
Гость ![]() |
Oleg_Z
Если я правильно помню, количество завершающих нулей в числе n! вычисляется так: s := n div 5; |
zx1024 |
![]()
Сообщение
#6
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 119 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата s := n div 5; Не совсем Код s := 0; j := 5; while n >= j do begin s := s + (n div 5); j := j * 10 end; Сообщение отредактировано: zx1024 - 2.11.2004 13:04 |
volvo |
![]()
Сообщение
#7
|
Гость ![]() |
zx1024
Не работает ... ![]() Но вот какой алгоритм я нашел: Если выписать все n сомножителей и разложить их на простые множители, то каждая пара 2 и 5 даст ровно один ноль. Пятерок будет меньше, чем двоек, поэтому достаточно проследить за ними. Одна пятерка встретится в каждом пятом числе, еще одна - в каждом двадцать пятом и т.д. Отсюда формула: Число нулей в N! = [N/5] + [N/25] + [N/125] + ... Код var n, x, s: integer; begin s := 0; write( 'n> ' ); readln(n); x := 5; while x <= n do begin inc(s, n div x); x := x * 5 end; writeln(s, ' zeroes'); end. Сообщение отредактировано: volvo - 2.11.2004 15:29 |
zx1024 |
![]()
Сообщение
#8
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 119 Пол: Мужской Репутация: ![]() ![]() ![]() |
Да.
Я уже хотел исправить, но не успел. |
![]() ![]() |
![]() |
Текстовая версия | 18.06.2025 10:19 |