سلام دوستان
این درس ساختمان داده تقریبا تنها درس مهم من هست که مونده و من هم نمیدونم چرا یاد نمیگیرم! حالا یه سوال هست این شکلی
سوال : مقدار (20,28)M را برای تابع بازگشتی زیر محاسبه کنید.
واقعا ممنون میشم اگر راهنماییم کنید.
با تشکر
نیاز به کمک برای یک سوال ساختمان داده
مدیر انجمن: rosa_127
-
- كاربر عالي
- پست: 905
- تاریخ عضویت: دوشنبه 16 فروردین 1389, 11:53 am
- محل اقامت: On the Earth ...
Re: نیاز به کمک برای یک سوال ساختمان داده
درود دوست من،
ببین تابعهای بازگشتی چیز خاصی نیستند، تنها باید بتونی راحت روی کاغذ به ترتیب اجراش کنید، بهترین راه هم کشیدن درخت هست.
اینجا اسم تابع M هست، الان به درخت زیر دقت کن :
// تابع با مقدار ورودی 20 و 28 اجرا میشه ...
مرحله 1 : فراخوانی تابع A:20 ، B:28
مرحله دوم : آیا A از B کوچکتر است!؟ بله ، پس تابع را با مقدارهای Bو A فراخوانی کن( m( b,a
مرحله سوم : آیا A از B کوچکتر است!؟ خیر ، آیا B برابر با صفر است!؟ خیر ، پس تابع را با مقدارهای زیر فراخوانی کن :
در مرحلههای بعدی هم به همین شکل ...
تا زمانی که B به عدد 0 برسه ، اینجا خروجی نهایی شد 4
الان من تابع بالا رو با زبان ++C نوشتم و اجرا کردم :
(ذخیره و اجرا شده در سایت CodePad )
http://codepad.org/jqgZq3ho
خروجی شد 4 !
حالا به نحوه اجرا دقت کن :
اینم کدش :
http://codepad.org/I2qkYLOD
امیدوارم خوب گفته باشم.
ببین تابعهای بازگشتی چیز خاصی نیستند، تنها باید بتونی راحت روی کاغذ به ترتیب اجراش کنید، بهترین راه هم کشیدن درخت هست.
اینجا اسم تابع M هست، الان به درخت زیر دقت کن :
// تابع با مقدار ورودی 20 و 28 اجرا میشه ...
مرحله 1 : فراخوانی تابع A:20 ، B:28
مرحله دوم : آیا A از B کوچکتر است!؟ بله ، پس تابع را با مقدارهای Bو A فراخوانی کن( m( b,a
مرحله سوم : آیا A از B کوچکتر است!؟ خیر ، آیا B برابر با صفر است!؟ خیر ، پس تابع را با مقدارهای زیر فراخوانی کن :
کد: انتخاب همه
m(b , a mod b ) // b : 20 , a mod b = 28 % 20 = 8
تا زمانی که B به عدد 0 برسه ، اینجا خروجی نهایی شد 4
الان من تابع بالا رو با زبان ++C نوشتم و اجرا کردم :
(ذخیره و اجرا شده در سایت CodePad )
http://codepad.org/jqgZq3ho
خروجی شد 4 !
حالا به نحوه اجرا دقت کن :
کد: انتخاب همه
m(20,28)
m(28,20)
m(20,8)
m(8,4)
m(4,0)
4
http://codepad.org/I2qkYLOD
امیدوارم خوب گفته باشم.
Re: نیاز به کمک برای یک سوال ساختمان داده
واقعا از لطفت ممنونم. کاملا متوجه شدم. خیلی لطف کردی.
-
- كاربر عالي
- پست: 905
- تاریخ عضویت: دوشنبه 16 فروردین 1389, 11:53 am
- محل اقامت: On the Earth ...
Re: نیاز به کمک برای یک سوال ساختمان داده
خواهش میکنم ...konkoorkk نوشته شده:واقعا از لطفت ممنونم. کاملا متوجه شدم. خیلی لطف کردی.
موفق باشید.