Предмет: Информатика, автор: asogo

По данному натуральном n вычислите сумму 1!+2!+3!+...+n!. В решении этой задачи можно использовать только один цикл.
C++

Ответы

Автор ответа: MrSolution
0

Ответ:

(см. объяснение)

Объяснение:

При решении данной задачи разумно воспользоваться формулой Джеймса Стирлинга для вычисления приближенного значения факториала, которая имеет вид:

n!\approx\dfrac{n^n}{e^n}\times\sqrt{2\pi n}

Она позволит избежать использования цикла и уменьшит время работы программы.

Реализуем этот алгоритм на языке программирования и сравним, насколько сильно отличаются значения:

using namespace std;  

int main()

{

int n;

cout << "n=";

cin >> n;

cout << "n!~" << round(pow(n,n)/exp(n)*sqrt(2*acos(-1.0)*n));  

int k=1;

for(int i=2; i<=n; ++i)

{

             k*=i;

}

cout << endl << "n!=" << k << endl;  

cin >> n;  

return 0;  

}

(Демонстрацию работы программы смотреть в прикрепленном файле)

Приложения:
Похожие вопросы
Предмет: Русский язык, автор: Iamaverygood