ما اگه یک تابع بازگشتی رو در خودش فراخوانی کنیم چطوری می شه ؟؟؟
یعنی همچین چیزی
int b;
int recursive(int a){
if(){}// control func
recursive (recursive(b));
}
و چطور باید کنترلش کرد؟؟؟؟/
ما اگه یک تابع بازگشتی رو در خودش فراخوانی کنیم چطوری می شه ؟؟؟
یعنی همچین چیزی
int b;
int recursive(int a){
if(){}// control func
recursive (recursive(b));
}
و چطور باید کنترلش کرد؟؟؟؟/
همه چیز به if شما بستگی دارد اصلا فرقی ندارد که تابع چگونه خودش را فراخوانی میکند.
نه منظورم اینه که چطوری می شه استدلالش کرد مثلا سری فیبوناتچی که بازگشت می خوره در هر مرحله 2 قسمت مجزا می شه حالا اگه در خودش دوباره خودش رو فراخوانی کنیم چطوری می شه؟؟؟
اگه یک مثال بذارید ممنون می شم
یک مثال ساده :
#include <iostream>
#include <conio>
int f(int n){
if(n==1 || n==0)
return 1;
else
return 1+f(f(n/2));}
//=====================
int main(){
for(int i=1;i<=10;i++)
cout<<i<<" "<<f(i)<<endl;
getch();
}
trace کردنش با توابع بازگشتی معمولی فرقی نداره ؛
مثلا F با ورودی 5 :
f(5) :
1+f(f(2));
f(2) = 1+f(f(1));
f(1)=1;
f(2) = 2;
f(5) = 3;
موفق باشید .