Тьомчик
-
Автор темы
- #1
проблема в (-1)^n-1, справа ограничение и основная формула
код/code:
#include <Windows.h>
#include <iostream>
#include <locale.h>
#include <string.h>
#define _USE_MATH_DEFINES
#include <math.h>
using namespace std;
void main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
setlocale(LC_ALL, "");
int n = -1;
float x, formula, summa_first, summa_second = 0.0f;
const float epsilon = pow(10, -4);
cout << "цифра x: ";
cin >> x;
summa_first = log1p(x);
do
{
if (n > 1)
{
break;
}
formula = pow(-1, n - 1) * (pow(x, n) / n);
/*
не правильно только
pow(-1, n - 1)
это правильно.
(pow(x, n) / n)
*/
summa_second += formula;
n++;
} while (fabs(formula) > epsilon);
cout << "первая: " << summa_first << endl;
cout << "вторая: " << summa_second << endl;
if (fabs(summa_second - summa_first) < epsilon)
{
cout << "точное" << endl;
}
else
{
cout << "не точное" << endl;
}
}
цифра x: 5
первая: 1.79176
вторая: -inf
ВТОРАЯ В ЛЮБОМ СЛУЧАЕ ВЫХОДИТ -inf :/
первая: 1.79176
вторая: -inf
ВТОРАЯ В ЛЮБОМ СЛУЧАЕ ВЫХОДИТ -inf :/
Последнее редактирование: