Предмет: Информатика,
автор: asogo
По данному натуральном n вычислите сумму 1!+2!+3!+...+n!. В решении этой задачи можно использовать только один цикл.
C++
Ответы
Автор ответа:
0
Ответ:
(см. объяснение)
Объяснение:
При решении данной задачи разумно воспользоваться формулой Джеймса Стирлинга для вычисления приближенного значения факториала, которая имеет вид:
Она позволит избежать использования цикла и уменьшит время работы программы.
Реализуем этот алгоритм на языке программирования и сравним, насколько сильно отличаются значения:
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
Предмет: Русский язык,
автор: БутенкоМила
Предмет: Другие предметы,
автор: дарьяекк
Предмет: Математика,
автор: НагибаторН
Предмет: Русский язык,
автор: мила620