Всем привет. Написал код по заданию, не выдает правильные значения. Не могу найти ошибку, помогите исправить ошибку?
Непосредственно мое "решение"
#include <iostream>
#include <cmath>
int main() {
double x, e;
std::cout << "Введите значение x: ";
std::cin >> x;
std::cout << "Введите значение epsilon: ";
std::cin >> e;
double S = 0.0;
double term = 1.0;
int k = 0;
while (std::abs(term) >= e) {
S += term;
k++;
term = ((-1) * std::pow(k, k) * std::pow(x, 2*k)) / (std::pow(2, k) * std::tgamma(k+1));
}
std::cout << "Сумма: " << S << std::endl;
return 0;
}
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
а вот по поводу не применения функции pow
Ну, по гамбургскому счету, так по гамбургскому...
Где здесь pow
?
double S(double x, double e)
{
x = -x*x/2;
double sum = 1, term = 1;
for(int k = 1; abs(term) >= e; ++k)
sum += term *= x/k;
return sum;
}
Кстати, можно еще проще :)
double S(double x, double e)
{
return exp(-x*x/2);
}
И кстати же, по поводу pow
рекомендую посмотреть этот вопрос...