Предмет: Информатика,
автор: Kurill189
помогите перевести с паскаля на с++
const eps = 1e-4;
function pow(x : Real; k : Integer) : Real;
var r : Real;
begin
r := 1;
while k > 1 do
begin
Dec(k);
r := r * x;
end;
pow := r;
end;
function pRoot(x : Real; k : Integer) : Real;
var y, y0 : Real;
begin
y := 1;
repeat
y0 := y;
y := y + (x / pow(y, k-1) - y) / k;
until abs(y - y0) < eps;
pRoot := y;
end;
var a : Real;
begin
ReadLn(a);
WriteLn((pRoot(a,3) - pRoot(a*a+1,6))/(1 + pRoot(3+a,7)) :0:5);
end.
Ответы
Автор ответа:
1
#include <iostream>
#include <iomanip>
using namespace std;
double pow (double x, int k)
{
double r = 1;
while(k > 1)
{
k--;
r *= x;
}
return r;
}
double pRoot (double x, int k)
{
double const eps = 1e-4;
double y = 1, y0;
do
{
y0 = y;
y += (x / pow(y, k - 1) - y) / k;
}
while(abs(y - y0) >= eps);
return y;
}
int main()
{
double a;
cin >> a;
cout << fixed << setprecision(5) << (pRoot(a, 3) - pRoot(a * a + 1, 6)) / (1 + pRoot(3 + a, 7));
return 0;
}
Похожие вопросы
Предмет: Английский язык,
автор: Sayf1xx
Предмет: Информатика,
автор: annvolkova71
Предмет: Химия,
автор: Аноним
Предмет: Математика,
автор: AnyutaBorodina
Предмет: Химия,
автор: nik1256