C/C++

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

1 1 1 =Сумма=Общее число (цифра).
Дмитрий Кургуз
Дмитрий Кургуз
3 752
Лучший ответ
#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");
}
Klaus Mikaelson
Klaus Mikaelson
51 017
#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);
Только ничего от этого не изменится - будет всё то же самое!. (•‿•)
Делаешь функцию которая принимает на вход количество суммирований (то что сейчас десятка) в теле функции в зависимости от параметра задаёшь вычисление верхней дроби - функцию факториала. В нижней части дроби берешь заданное е и возводишь в степень которую ты посчитал выше. Верх/низ. Всё это в цикле (i=1; i<число_суммирований; i++) Ответ выводишь.
Vladimir Aksjutin
Vladimir Aksjutin
3 437
Бросай шарагу и иди делать уроки. Программирование не твоё
UP
Ub6 Pbq
561