توابع بازگشتی چگونه کار می کنند؟
سلام خدمت همه دوستان گرامی اگر امکان داره کار این تابع بازگشتی رو به من توضیح بدید ممنون میشم ...
//this program calculation appendix of 2+5+11+23... 1 to 20 of appendix formula d(1)=2,d(n)=2*d(n-1)+1
#include <iostream.h>
#include <conio.h>
long int d(long int);
int main()
{
// int i;
for(int i=1;i<=20;i++)
{
cout<<d(i)<<"\t";
if(i%5==0) cout<<endl;
}
getch();
}
long int d(long int n)
{
if(n==1)
return 2;
else
مخصوصا این قسمت return 2*d(n-1)+1;
}
نقل قول: توابع بازگشتی چگونه کار می کنند؟
نقل قول: توابع بازگشتی چگونه کار می کنند؟
نقل قول: توابع بازگشتی چگونه کار می کنند؟
این تابع بازگشتی میخواد جمله n ام یک دنباله ای رو حساب کنه که جمله اولش هست 2
و جمله n ام بر اساس یک فرمولی از جمله n-1 ام پیدا میشه . به همین سادگی .
ولی اگه تو Trace الگوریتم و یا Recursion Tree (درخت بازگشت مساله) مشکل دارید ، پیشنهاد میکنم
به مفاهیم بازگشت مطالعه ای داشته باشید تا بهتر درک کنید ، چون این ویژگی الگوریتم بازگشتی نسبت به
الگوریتم های تکراریه ، که تعداد خط کدشون پایین تر ولی درک کد سخت تر !! (البته نه این مساله شما ما الگوریتم های
بازگشتی خیلی خیلی پیچیده ای داریم)
موفق باشید ./