معمولاً اگه یه الگوریتم رو به صورت بازگشتی بنویسی، برای شروع اون الگوریتم، باید اون رو با یه پارامتر خاصی صدا بزنی. مثلاً تو مثال بالا میشه تابع Returner رو به صورت
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
تعریف کنی (چون قبلاً تو سازنده کلاس، مقدار power رو دادی و ذخیره کردی و نیازی نیست دوباره یه مقدار بفرستی).
در نتیجه یه تابع عمومی با نقش «واسط» می گذاریم تا کسی که می خواد از اون کلاس استفاده کنه خیلی درگیر جزییات نشه.
و توابع دیگر رو به صورت خصوصی تعریف می کنیم. این توابع خصوصی نقش انجام دهنده کار رو دارن و بهتره به دلیل اینکه کمی جزئی کار می کنن با اون ها بوسیله تابع واسطه در ارتباط باشیم.
در اینجا ReturnerRex یک تابع بازگشتی هست که به صورت بازگشتی مقدار مورد نظر رو حساب می کنه. داریم:
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
یعنی اینکه n^p برابر n * n^p-1 هست.
البته بهتره که برا محاسبه توان از حلقه ساده استفاده کنی تا overhead فراخوانی پی در پی تابع رو نداشته باشی.