Ошибка: Необработанное исключение по адресу 0x001F2619
Цель задачи такова: написать программу способную посчитать данное выражение: y=cos(x)+cox(x2)+cos(x3)+...+cos(x*n). Использовать рекурсию. При отладке и введении x и n выбивает следующее "Необработанное исключение по адресу 0x001F2619 в ****.exe: 0xC00000FD: Stack overflow (параметры: 0x00000001, 0x01202FA0)."
#include <iostream>
using namespace std;
float cos_sum(float x,int i){
float k = x * i;
float sum = cos(k);
for (int n = 1; n <= i; n++)
{
sum += cos_sum(x, i--);
}
return sum;
}
int main() {
setlocale(0, "rus");
float x;
int n;
cout << "x = ";
cin >> x;
cout << "n = ";
cin >> n;
cos_sum(x, n);
}
Укажите пожалуйста на ошибку
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Вот исправленный код:
#include <iostream>
using namespace std;
double cos_sum(double x, unsigned int n)
{
if (n == 0) return 0;
return cos_sum(x,n-1) + cos(x*n);
}
int main()
{
double x;
unsigned int n;
cout << "x = ";
cin >> x;
cout << "n = ";
cin >> n;
cout << cos_sum(x, n);
}