Помогите пожалуйста! Беда с рекурсиями, С++.

0 голосов
35 просмотров

Помогите пожалуйста! Беда с рекурсиями, С++.


image

Информатика (302 баллов) | 35 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

#include
#include

using namespace std;

double f(double x, int n)
{
    if (n > 0) return (f(tan(n*M_PI/2+x),n-1));
       else return (x);
}

int main()
{
    int n ;
    double x;
    cout << "n = ";<br>    cin >> n;
    cout << "x = ";<br>    cin >> x;
    cout << tan(M_PI/2 + tan(2*M_PI/2 + tan(3*M_PI/2 + tan(4*M_PI/2+x)))) << "\n";<br>    cout << "tg() = " << f(x,n) << "\n";<br>    system("Pause");
    return 0;
}

Пример:
n = 4
x = 1
74.677
tg() = 74.677

(194k баллов)
0 голосов

#include
#include
#define Pi 3.14159265
using namespace std;


double Func(double x, int n, int jz)
{
       if (jz > 1) return (tan((n-jz+1)*Pi/2+ Func(x,n,jz-1)));
       else return (tan(n*Pi/2+x));
}



int main()
{
    int n = 0;
    double x,S;
    S = 0;
    cout << "n = ";<br>    cin >> n;
    cout << "x = ";<br>    cin >> x;
    
    S = Func(x,n,n);
    cout << S << "\n";<br>    system("Pause");
    return 0;
}

Пример:

n = 3
x = 1
1.07817
Для продолжения нажмите любую клавишу . . .

Для  n=3, x=1 выражение должно выглядеть так:
Tan(Pi/2 + Tan(2*Pi/2 + Tan(3*Pi/2 +x))) = 1,0781689469614057415777644795053

Всё верно.


(34.0k баллов)
0

Ух, быстро, спасибо)

0

Шаблон с прошлого решения взял)) Две строчки всего исправил))

0

Можешь объяснить что это за "y"?

0

В какой строчке "у" ??

0

ой, точнее не "y", а "jz", я понимаю для чего она нужна, но как она определяется я нинаю~

0

Так объяснишь?