
آموزش جامع زبان برنامهنویسی C++ مقدماتی تا پیشرفته [0 تا 100 سی پلاس پلاس بهمراه حل تمرین و پروژه ✅] - توابع بازگشتی (تحلیل فاکتوریل به روش بازگشتی) - قسمت 58
در این قسمت از دوره آموزش C++، به بررسی توابع بازگشتی یا ریکرسیو فانکشن (Recursive Function) میپردازیم و با یک مثال عملی یعنی محاسبه فاکتوریل، مفهوم و نحوه استفاده از این توابع را توضیح میدهیم.
مفهوم فاکتوریل
فاکتوریل یک عدد طبیعی nnn (که با n!n!n! نشان داده میشود) برابر است با حاصلضرب همه اعداد طبیعی کمتر یا مساوی nnn:
3!=3×2×1=63! = 3 \times 2 \times 1 = 63!=3×2×1=6
تعریف توابع بازگشتی
توابع بازگشتی توابعی هستند که در تعریف خودشان به خودشان ارجاع میدهند. برای فهم بهتر، ابتدا یک تعریف ساده از تابع بازگشتی ارائه میدهیم و سپس به پیادهسازی فاکتوریل میپردازیم.
پیادهسازی فاکتوریل با استفاده از تابع بازگشتی
تابع بازگشتی فاکتوریل به این صورت عمل میکند که هر بار عدد ورودی را در فاکتوریل عدد قبل از خود ضرب میکند تا به مقدار پایه (Base Case) برسد. مقدار پایه در محاسبه فاکتوریل، 0!=10! = 10!=1 است.
#include
using namespace std;
int factorial(int n) {
if (n == 0) {
return 1; // مقدار پایه
} else {
return n * factorial(n - 1); // فراخوانی بازگشتی
}
}
int main() {
int number = 3;
cout << "Factorial of " << number << " is: " << factorial(number) << endl;
return 0;
}
توضیح کد
- تابع factorial:
- اگر n برابر با صفر باشد، مقدار 1 را برمیگرداند (مقدار پایه).
- در غیر این صورت، n را در فاکتوریل n – 1 ضرب میکند و نتیجه را برمیگرداند.
- تابع main:
- مقدار number را به عنوان ورودی تابع factorial ارسال میکند و نتیجه را در کنسول نمایش میدهد.
جریان اجرای تابع بازگشتی
هنگامی که تابع factorial با مقدار 3 فراخوانی میشود، مراحل زیر طی میشود:
- factorial(3) → 3 * factorial(2)
- factorial(2) → 2 * factorial(1)
- factorial(1) → 1 * factorial(0)
- factorial(0) → 1
سپس مقادیر برگشتی به ترتیب محاسبه و جایگزین میشوند:
- factorial(1) → 1 * 1 = 1
- factorial(2) → 2 * 1 = 2
- factorial(3) → 3 * 2 = 6
نتیجهگیری
توابع بازگشتی ابزار قدرتمندی در برنامهنویسی هستند که با استفاده از آنها میتوان مسائل پیچیده را به مسائل کوچکتر و سادهتر تقسیم کرد. در این قسمت، مفهوم تابع بازگشتی را با استفاده از مثال فاکتوریل بررسی کردیم. یاد گرفتیم که چگونه یک مسئله را به صورت بازگشتی حل کنیم و اهمیت مقدار پایه در توابع بازگشتی را فهمیدیم. در قسمتهای بعدی به بررسی مثالهای پیچیدهتر از توابع بازگشتی خواهیم پرداخت.
منابع خارجی مرتبط
ادامه دوره (قسمت 59)
در قسمت بعدی به توابع بازگشتی با تحلیل مثال دنباله فیبوناچی خواهیم پرداخت. اگر سوالی دارید، در بخش دیدگاه مطرح کنید. همچنین ممنون میشم با حمایت دلنشینتون از من و دورهها حمایت کنید.
در این قسمت از دوره آموزش C++، به بررسی متغیرهای لوکال (محلی) و گلوبال (سراسری) میپردازیم و نحوه...
در این قسمت از دوره آموزش C++، به بررسی توابع بازگشتی یا ریکرسیو فانکشن (Recursive Function) میپردازیم و...
توابع بازگشتی (تحلیل فاکتوریل به روش بازگشتی)
حق کپی ویدئو مجاز نمیباشد
قسمت:
جلسه پنجاه و هشت
نام دوره:
آموزش جامع ++C
زمان ویدئو:
9 دقیقه
مدرس:
مهدی کاظمی
در این قسمت یادخواهید گرفت:
در این قسمت از دوره آموزش C++، به بررسی توابع بازگشتی یا ریکرسیو فانکشن (Recursive Function) میپردازیم و با یک مثال عملی یعنی محاسبه فاکتوریل، مفهوم و نحوه استفاده از این توابع را توضیح میدهیم.
