Расчет факториала
Факториа́л числа n (обозначается n!, произносится эн факториа́л) — произведение всех натуральных чисел до n включительно:
.
По определению полагают 0! = 1. Факториал определён только для целых неотрицательных чисел.
Последовательность факториалов положительных целых чисел начинается так:
1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800, 39916800, 479001600, 6227020800, …
Факториалы часто используется в комбинаторике, теории чисел и функциональном анализе.
С ростом n значение факториала растет очень быстро! Поэтому расчет факториала 13! приведет к переполнению значения.
Входная и выходная информация программы определяется макетами:
Программа расчета n!
Введите значение аргумета факториала
Тест № 1: Тест № 2: Тест № 3: Тест № 4:
5 0 13 -2
5! = 120 0! = 1 Не могу рассчитать 13! Не могу рассчитать -2!
Выходная информация программы:
int f; //Значение факториала, если его можно рассчитать
Входная информация программы:
int n; //Аргумент факториала
Наглядные тесты:
n=5
n=0
n=1
Пример программы расчета значений факториала n для MVS2005 приведен ниже (комментарии в стиле C++):
#include "stdafx.h"
#include <conio.h>
#include <locale.h>
//Программа расчета значений n!
int main (void)
{
int
n; //Аргумент факториала
int
i; //Вспомогательная переменная
int
f; //Значение факториала, если его можно рассчитать
setlocale(LC_ALL, "russian"); //Русский язык
printf ("Программа расчета n! \n");
printf ("Введите значение аргумента факториала \n");
scanf("%i",&n);
//Контроль n
if ((n<0)||(n>12))
{
printf ("Не могу рассчитать %i! \n", n);
return -1;
}
//Расчет факториала при корректном n
f = 1; //Начальное значение факториала
i = 1;
while(i<=n)
{
f = f * i; //i-ое значение факториала
i++;
}
//Печать факториала n
printf ("%i! = %i \n", n, f);
/*Завершение выполнения программы*/
printf("\nНажмите любую клавишу\n");
_getch();
return 0;
}
Date: 2015-08-24; view: 333; Нарушение авторских прав Понравилась страница? Лайкни для друзей: |
|
|