Текст подпрограммы и версий
sfg1r_c.zip  sfg1d_c.zip 
Тексты тестовых примеров
tsfg1r_c.zip  tsfg1d_c.zip 

Функция:  sfg1r_c

Назначение

Вычисление факториала натурального числа.

Математическое описание

Подпрограмма - функция sfg1r_c вычисляет факториал натурального числа N! = 1 * 2 * 3 ...* N непосредственным умножением, если N ≤ 32, и по формуле

                          N!  =  e ln Г(N+1) ,  

если N > 32, где Г (N + 1) - значение гамма - функции от N + 1. Значение 0! полагается равным 1 .

Использование

    real sfg1r_c (integer *n)

Параметры

n - заданное значение натурального числа, для которого необходимо вычислить факториал (тип: целый).

Версии

sfg1d_c - вычисление факториала натурального числа в режиме удвоенной точности; при этом функция sfg1d_c должна быть описана как double.

Вызываемые подпрограммы

       sf66r_c -
       sf66d_c  
вычисление натурального логарифма гамма - функции Г (x) вещественного аргумента в режимах одинарной и удвоенной точности; используются в подпрограммах - функциях sfg1r_c и sfg1d_c соответственно.

Замечания по использованию

 

В подпрограммах - функциях sfg1r_c и sfg1d_c возможны остановы по переполнению арифметического устройства, если требуемое значение n! превосходит максимальное представимое число на используемой машине.

Пример использования

int main(void)
{
    /* Local variables */
    extern float sfg1r_c(int *);
    static int n;
    static float res;

    n = 5;
    res = (float)sfg1r_c(&n);

    printf("\n %16.7e \n",res);
    return 0;
} /* main */


Результат:     res = 120