PDA

View Full Version : توابع بازگشتی چگونه کار می کنند؟



MiniMicro
سه شنبه 06 تیر 1391, 20:39 بعد از ظهر
سلام خدمت همه دوستان گرامی اگر امکان داره کار این تابع بازگشتی رو به من توضیح بدید ممنون میشم ...
//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;
}

بهروز عباسی
سه شنبه 06 تیر 1391, 20:56 بعد از ظهر
http://hpkclasses.ir/Courses/cpp/cpp0700.html#a9

http://www.bekaran.com/Tutorials/CPP/RecursivityFunction.aspx

بهروز عباسی
سه شنبه 06 تیر 1391, 21:00 بعد از ظهر
اینم همون مثالی که گفتی
http://com-edu.persiangig.com/Cpro/C-3-4.html

موفق باشید.

Salar Ashgi
یکشنبه 11 تیر 1391, 15:37 بعد از ظهر
این تابع بازگشتی میخواد جمله n ام یک دنباله ای رو حساب کنه که جمله اولش هست 2
و جمله n ام بر اساس یک فرمولی از جمله n-1 ام پیدا میشه . به همین سادگی .

ولی اگه تو Trace الگوریتم و یا Recursion Tree (درخت بازگشت مساله) مشکل دارید ، پیشنهاد میکنم

به مفاهیم بازگشت مطالعه ای داشته باشید تا بهتر درک کنید ، چون این ویژگی الگوریتم بازگشتی نسبت به

الگوریتم های تکراریه ، که تعداد خط کدشون پایین تر ولی درک کد سخت تر !! (البته نه این مساله شما ما الگوریتم های

بازگشتی خیلی خیلی پیچیده ای داریم)

موفق باشید ./