Задача по с++. Кто делал подобное, помогите - Вопросы по С+

Вопрос Задача по с++. Кто делал подобное, помогите

Регистрация
2 Июл 2013
Сообщения
86
Репутация
0
Спасибо
0
Монет
0
875a8375f91de049494d6073098e8a2f_e91b55254f516783e97502fa7ca5c119.png

 
Регистрация
16 Ноя 2013
Сообщения
94
Репутация
0
Спасибо
1
Монет
0
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
double fact(int n) {
return n <= 0? 1.0 : n * fact(n - 1);
}
double sum(int a, double s = 0.0) {
if (!a) return s;
auto f = fact(a);
s += f / exp(f);
return sum(a - 1, s);
}
int main() {
auto s = sum(10);
cout << "sum: " << fixed << setprecision(15) << s << '\n';
system("pause > nul");
}
 
Регистрация
23 Авг 2013
Сообщения
84
Репутация
5
Спасибо
0
Монет
0
Делаешь функцию которая принимает на вход количество суммирований (то что сейчас десятка) в теле функции в зависимости от параметра задаёшь вычисление верхней дроби - функцию факториала. В нижней части дроби берешь заданное е и возводишь в степень которую ты посчитал выше. Верх/низ. Всё это в цикле (i=1; i<число_суммирований; i++) Ответ выводишь.
 
Регистрация
15 Авг 2013
Сообщения
91
Репутация
0
Спасибо
0
Монет
0
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
int main()
{
double A, fact = 1., sum = 0.;
for (A = 1; A < 11; A++)
{
fact *= A;
sum += fact * exp(-fact);
cout << setprecision(0) << setw(2)
<< A << " » " << setprecision(16) <<
fixed << setw(22) << sum << endl;
}
system("pause > nul");
return 0;
}
Можно сумму ещё так вот попробовать повычислять:
sum += exp(log(fact) - fact);
Только ничего от этого не изменится - будет всё то же самое!. (•‿•)
288686996_26ce16874e1ebba6c9a43e268756ac7e_800.jpg

 
Сверху Снизу