Чем можно заменить функцию pow при вычислениях степеней?
Имеется следующий код:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main() {
const double eps = 10e-4;
double x,s = 0,Sn,f;
int n;
printf ("Введите число x = ");
scanf ("%lf", &x);
if ((fabs(x-(-0.5)) > eps) && (fabs(x-0.5) > eps)) {
while (-0.5 < x != x < 0.5)
{
printf ("Необходимо ввести значение x только из промежутка |x|<0.5, x = ");
scanf ("%lf", &x);
}
} for (n=0;; n++) {
Sn = (1+ pow(-1,n)* pow(2,n+1))* pow(x,n);
if (fabs(Sn)<eps)
break;
else s += Sn;
}
f = 3/((1-x)*(1+2*x));
printf ("Значение функции S = %lf\n",s);
printf ("Значение функции f = %lf",f);
return 0;
}
Необходимо заменить функцию pow на другую структуру (например какой-нибудь цикл), но ума не приложу как это можно реализовать
Сама задача:
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Например, так:
double f(double x, double eps)
{
double s = 3, p1 = 1, p2 = 2, t = 3;
for(; abs(t) > eps;)
{
p2 *= -2*x;
p1 *= x;
s += (t = p1+p2);
}
return s;
}
