|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
21.04.2009, 18:03 | #1 |
Пользователь
Регистрация: 04.02.2009
Сообщений: 21
|
Паскаль, факториал, рекурсия....
Написать программу с использованием рекурсии, для определения, сколько существует способов назначить дежурными трёх учеников в класе за формулой n!/(m!(n-m)!). Где n - количество черговых (3).
m - количество учеников в класе(30). uses crt; var n,m,w:integer; y,q,j:longint; e:real; function F(x:integer):longint; begin if x=1 then F:=1 else F:=x*F(x-1); end; begin clrscr; write ('vvedite kilkist chergovih n='); textcolor(2); readln(n); textcolor(7); write('vvedite kilkist ychniv m='); textcolor(2); readln(m); y:=F(n); q:=F(m); w:=n-m; j:=F(w); e:=y/(q*j); textcolor(7); writeln('vsego sposobov ',e); readln; end. В этой программе выдает ошибку, помогите исправить... |
21.04.2009, 20:49 | #2 |
Пользователь
Регистрация: 04.02.2009
Сообщений: 21
|
по моему в программе выделяеться мало памяти на вычисление, если это так, то как это исправить?
|
22.04.2009, 00:48 | #3 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
1) Вы ошиблись с формулой.
Посмотрите, у Вас в знаменателе получается отрицательное число, Вас это не смутило? согласно wikipedia - Сочетание для Вашего случая будет формула: m!/ (n! * (m-n)! ) 2) Но обычных типов данных для Ваших расчётов банально не хватит (уж очень большие числа получаются) Longint -2147483648..2147483647 Signed 32-bit 16! = 2004189184 уже 17! (=34071216128) не помещается в данный диапазон. А Вам надо посчитать факториал 30! (а это, приблизительно будет 2.54085098357539646 * 10^28) Для простоты решения можете просто использовать вещественные числа: Код:
Последний раз редактировалось Serge_Bliznykov; 22.04.2009 в 00:52. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Паскаль. рекурсия. числа. объясните, как работает код | [silver beast] | Помощь студентам | 2 | 21.01.2009 05:00 |
Факториал | Killbrum | Софт | 14 | 13.08.2008 00:34 |
Паскаль. Рекурсия. | Лёха | Помощь студентам | 2 | 20.03.2008 22:54 |
Паскаль. Рекурсия | Sergik1977 | Помощь студентам | 8 | 12.11.2007 17:08 |