PDA

View Full Version : توابع بازگشتی



m.khani_121
پنج شنبه 24 فروردین 1391, 17:15 عصر
سلام دوستان . کسی میتونه این برنامه رو برا من trace کنه ؟؟؟ یعنی مرحله به مرحله چه جوریه ؟؟ جواب برنامه میشه 8 . ممنون


int _tmain(int argc, _TCHAR* argv[])
{
int x;
x=f(3,2);
cout<<x;
getch();
return 0;
}

int f(int a,int b)
{
if(a==0)
return 1;
else return (f(a-1,b-1)+f(a-1,b-2));
}

Ananas
جمعه 25 فروردین 1391, 12:17 عصر
سلام.
عدد b در تابع f هیچ کارس پس اگه فقط بخوایم a رو حساب کنیم و f(a, b) رو به شکل fa بنویسیم به این شکل میشه:


f1 = f0 + f0 = 1+1 = 2
f2 = < +
f1 = f0 + f0 = 1+1 = 2
f3 = < +
f1 = f0 + f0 = 1+1 = 2
f2 = < +
f1 = f0 + f0 = 1+1 = 2
______________________________________
f3 = 2 + 2 + 2 + 2 = 8