Добавил:
AlexKon
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:ЯП3 / Яп3
.cpp#include <iostream>
#include <cmath>
#include <vector>
using namespace std;
int Factorial(int n)
{
if (n != 1)
{
return n * Factorial(n - 1);
}
}
int Pov(int a, int b, int c)
{
if (a < b) return c;
else return(Pov(a - b, b, c + 1));
}
string Vzaim2(int number);
string Vzaim(int number)
{
if (number == 0)
return "Чётное";
else
return Vzaim2(number - 1);
}
string Vzaim2(int number)
{
if (number == 0) return "Нечётное";
else return Vzaim(number - 1);
}
int cas(int a)
{
if ((a == 0) || (a == 1)) return 1;
else return(cas(a - 1) + cas(a - 2));
}
int udal(int a, int b)
{
if (a == 0) return (b + 1);
else
{
if (b == 0) return udal(a - 1, 1);
else return udal(a - 1, udal(a, b - 1));
}
}
int main()
{
setlocale(LC_ALL, "Russian");
cout << "Линейная рекурсия:"<<"\n";
int num1;
cout << "Введите число: ";
cin >> num1 ;
int factorial = Factorial(num1);
cout << "Факториал - ";
cout << factorial;
cout << "\n";
cout <<"\t" << "Повторная рекурсия:" << "\n";
int result = Pov(4, 2, 0);
cout << "\t" << result;
cout << "\n";
cout << "Взаимная рекурсия:" << "\n";
string kek = Vzaim(num1);
cout << "Число - " << num1 << " ";
cout << kek;
cout << "\n";
cout << "\t" << "Каскадная рекурсия:" << "\n";
int result1 = cas(num1);
cout << "\t" << result1;
cout << "\n";
cout << "Удаленная рекурсия:" << "\n";
int result2 = udal(2,3);
cout << result2;
}