M
double u(int i)
{
// тут определяются начальные значения последовательности
if (i<3)
return 0;
double utemp = u(i-1);// чтобы уменьшить число рекурсивных вызовов
double vtemp = v(i-2);
return (utemp-u(i-2)*vtemp-v(i-2))/(1+utemp*utemp+vtemp*vtemp);
}
double v(int i)
{
// тут определяются начальные значения последовательности
if (i < 3)
return 0;
double vtemp = v(i-1););// чтобы уменьшить число рекурсивных вызовов
return (u(i-1)+vtemp)/(abs(u(i-2)-vtemp)+1);
}
#include <math.h>
bool GetUnVn(double U1, double V1, double U2, double V2, int n, double &Un, double &Vn)
{
double Ui_1, Vi_1, Ui_2, Vi_2, Ui, Vi;
Ui_1 = U2;
Vi_1 = V2;
Ui_2 = U1;
Vi_2 = V1;
if (n < 3)
return false;
for (int i = 3; i <= n; i++)
{
Ui = (Ui_1 - Ui_2*Vi_1 - Vi_2)/(1 + Ui_1*Ui_1 + Vi_1*Vi_1);
Vi = (Ui_1 - Vi_1)/(fabs(Ui_2 + Vi_2) + 2);
Ui_2 = Ui_1;
Vi_2 = Vi_1;
Ui_1 = Ui;
Vi_1 = Vi;
}
Un = Ui;
Vn = Vi;
return true;
}
Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab