Факториал

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
VINNY-PYX
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 125
Зарегистрирован: 02.02.2004 (Пн) 17:24
Откуда: из роддома

Факториал

Сообщение VINNY-PYX » 08.12.2004 (Ср) 22:16

Мне нужно вычислить значение остатка от деления на M ффункции факториал N. (N!) nod m, где (1<N<250) (1<M<250)

Пример (7!) mod 29 = (1*2*3*4*5*6*7) mod 29 = (5040) mod 29 = 23
Это я сделал,но при проверке приложения, введя значение 249 я получил сообщение об ошибке - СЛИШКОМ большое число ( где-то 468 знаков (е+468)) ЧТо мне сделать, чтобы вычислить факториал 249???

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 08.12.2004 (Ср) 22:42

Дели на M не только конечный, а и каждый промежуточный результат. Тогда у тебя гарантированно не будет чисел, больших M * N
Изображение

Zer
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 460
Зарегистрирован: 26.09.2003 (Пт) 13:08
Откуда: Нижний Новгород

Сообщение Zer » 08.12.2004 (Ср) 22:50

В каких пределах меняется m? Если 2<m<255 то можно и по хитрее алгоритм составить... А если нет...
Код: Выделить всё
NN=1
for i=1 to XXX
NN=NN*i mod M
next i
Microsoft DirectX - Маломягкий Прямой Х...
Не откладывай на завтра то, что можно выпить сегодня...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

    TopList  
cron