For26. Дано вещественное число X (|X| < 1) и целое число N (> 0). Найти значение выражения X — X3/3 + X5/5 -…+ (-1)N*X2*N+1/(2*N+1). Полученное число является приближенным значением функции arctg в точке X.
>Решение Pascal
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | program For26; var X,Rez,pow:Real; N, i :Integer; begin Write('Введите X: '); Readln(X); Write('Введите N: '); Readln(N); Rez:=0; pow:=1; For i:=1 to 2*N+1 do begin pow:=pow*X; if (i mod 2) <> 0 then begin Rez:=Rez+pow/i; pow:=pow*(-1); end; end; Writeln(Rez); end. |
>
Решение C
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #include int main(void) { float x; printf("X:"); scanf ("%f", &x); int n; printf("N:"); scanf ("%i", &n); float x1=x,rez=x; int i,k=1; for (i =2; i<=n; ++i){ k+=2; x1 *= -1*x*x; rez += x1/k; } printf("%f \n ",rez); return 0; } |
Решение C++
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #include <iostream> using namespace std; int main() { setlocale(LC_ALL, "Russian"); float x; cout<<"X:"; cin>>x; int n; cout<<"N:"; cin>>n; float x1 = x, rez = x; int i, k = 1; for (i = 2; i <= n; ++i) { k += 2; x1 *= -1 * x * x; rez += x1 / k; } cout<< rez; } |
pow:=pow*x
C# будет?
C++ is wrong!
working code:
#include
#include
using namespace std;
int main()
{
float x;
int n,k=0;
float sum = 0;
cout<>x;cout<>n;
for(int i=1;i<=n;i=i+2)
{
k++;
sum = sum + (pow(-1,k+1)*(pow(x,i)/i));
}
cout<<"sum="<<sum<<endl;
return 0;
}
no sorry c++ is correct
but still i have got different answer than theirs:
#include
#include
using namespace std;
int main()
{
float x;
int n,k=0;
float sum = 0;
cout<>x;cout<>n;
for(int i=1;i<=n;i=i+2)
{
k++;
sum = sum + (pow(-1,k+1)*(pow(x,i)/i));
}
cout<<"sum="<<sum<<endl;
return 0;
}