Хочу получить удостоверение. Сколько стоит оплата? |
Опубликован: 10.12.2015 | Уровень: для всех | Доступ: платный
Лекция 15:
Рекурсивные функции
< Лекция 14 || Лекция 15 || Лекция 16 >
Иногда бывает необходимо вызывать некоторую функцию из этой же функции. Такие функции называются рекурсивными. Ниже приводится два примера использования рекурсивных функций.
-
Рекурсивная функция возведения в степень
//========================================================== // Name : recursion_expo.cpp // Author : Marat // Version : // Copyright : Your copyright notice // Description : Hello World in C++, Ansi-style //========================================================== #include <iostream> using namespace std; //Рекурсивная функция возведения в степень double expo(double a, int n) { double expo(double a, int n); if (n==0) return 1; if (a==0) return 0; if (n>0) return a*expo(a, n-1); if (n<0) return expo(a, n+1)/a; } int main() { double expo(double a, int n); double a; int n; double c; cout<<"\nInput real base of exponent = "; cin>>a; cout<<"\nInput integer degree of exponent = "; cin>>n; c=expo(a,n); cout<<"\nExponential of ["<<a<<"] in ["<<n<<"] degree = "<<c<<endl; return 0; }
Результат:
Input real base of exponent = 6.57 Input integer degree of exponent = 4 Exponent of [6.57] in [4] degree is 1863.21
-
Рекурсивная функция вычисления факториала
//========================================================== // Name : recursion_factorial.cpp // Author : Marat // Version : // Copyright : Your copyright notice // Description : Hello World in C++, Ansi-style //========================================================== #include <iostream> using namespace std; long fact(int k)//Рекурсивная процедура { long fact(int k); if (k<0) return 0; if (k==0) return 1; return k*fact(k-1); } int main() { long fact(int k); int k; cout<<"\nInput integer number, please = "; cin>>k; int n=fact(k); cout<<"\nFactorial of ["<<k<<"] = "<<n<<endl; return 0; }
Результат:
Input integer number, please = 5 Factorial of [5]=120
< Лекция 14 || Лекция 15 || Лекция 16 >