PDA

View Full Version : خروجی برنامه یک برنامه بازگشتی



lvenoos
دوشنبه 14 آبان 1386, 14:26 عصر
با توجه به 2 تابع زیر خروجی (4)f و (4)g چیست؟


void f(int x)
‍‍‍if (y) g(x-1)
printf(x)


void g(int y (
if (y)
printf (y+1)
f(y-1)
لطفا با توضیح باشد.با تشکر

whitehat
دوشنبه 14 آبان 1386, 16:50 عصر
من فکر می کنم صورت مسئله اول اشتباه هست و در شرط y به جای x نوشته شده
به هر حال خروجی به صورت زیر است


f(4)=42024
g(4)=53-113

lvenoos
چهارشنبه 16 آبان 1386, 13:59 عصر
میشه راه حلش (منظورم نحوه فراخوانی ها را توضیح بدی). اگر f(y) یعنی چی؟مرسی

whitehat
چهارشنبه 16 آبان 1386, 14:24 عصر
void f(int x)
‍‍‍if (x) g(x-1)
printf(x)
-----------
void g(int y (
if (y)
printf (y+1)
f(y-1)

فراخوانی ها به این شکل میشه


f(4)=g(3),Print(4)
g(3)=Print(4),f(2)
f(2)=g(1),Print(2)
g(1)=Print(2),f(0)
f(0)=print(0)
----------------------------
g(4)=Print(5),f(3)
F(3)=g(2),Print(3)
g(2)=Print(3),f(1)
f(1)=g(0),Print(1)
g(0)=f(-1)
f(-1)=Print(-1)

موفق باشید