Рекуррентная формула, описание в основной части
необходимо вычислить значение суммы членов бесконечного ряда с заданной точностью. Определить число членов ряда, вошедших в сумму. Контрольное задание на картинке 8(10^-4 - точность вычисление, а s - сумма членов, s1 - член, который вычисляется по рекуррентной формуле)
#include
#include <math.h> using namespace std;
int main() {
setlocale(LC_ALL, "Russian");
float s1 = 1, s = 0, eps = 0.0001;
int n = 1;
do {
s1 *= n / ((3 * n) + 3);
s += s1;
n++;
} while (abs(s1) > eps);
cout << "s = " << s << endl;
cout << "Количество слагаемых = " << n << endl;
Ответы (2 шт):
Автор решения: Harry
→ Ссылка
Ну, примерно так...
float s1 = 1, s = 0, eps = 0.0001;
int n = 2;
for(;s1/n > eps; n++)
{
s += (s1 /= 3)/n;
}
Формально вместо s1/n > eps надо s1/(n-1) > eps, но вряд ли это принципиально...
Автор решения: Владимир
→ Ссылка
Спасибо за ответы, код сработал после того, как в 14 строке после каждого цифры добавил точку. Рабочий код:
#include #include <math.h>
using namespace std;
int main() {
setlocale(LC_ALL, "Russian");
double s1 = 1, s = 0, eps = 0.0001;
int n = 1;
do {
s1 *= n / ((3. * n) + 3.);
s += s1;
n++;
} while (s1 / (n - 1) > eps);
cout << "s = " << s << endl;
cout << "Количество слагаемых = " << n << endl;
}
