الدّالّة (7) - Recursion 2

وقت القراءة: 4 دقائق 160 مشاهدة

مثال 1:

#include <iostream>
using namespace std;
int sum(int n)
{
    if (n == 1)
        return 1;
    else
        return n + sum(n - 1);
}

int main()
{
    cout << sum(5) << endl;
    return 0;
}

هذه الدالة تحسب مجموع العدد الطبيعي الأول n . الأعداد الطبيعية الأولى n هي الأرقام من 1 لـ n.

تعمل الدالة عن طريق استدعاء نفسها بشكل متكرر لحساب مجموع الأعداد الطبيعية الأولى n - 1 . إذا كان الرقم المدخل n هو 1، تقوم الدالة ببساطة بإرجاع الرقم 1، لأن مجموع الرقم الطبيعي الأول هو 1. وبخلاف ذلك، تقوم الدالة بإرجاع مجموع الرقم المدخل n ومجموع الأعداد الطبيعية الأولى n - 1 .

المخرجات:

15

مثال 2:

#include <iostream>
using namespace std;
int sum(int x, int y)
{
    if (x == y)
        return x;
    else
        return y + sum(x, y - 1);
}

int main()
{
    cout << sum(4, 6) << endl;
    return 0;
}

هذه دالة recursive sumتأخذ متغيرين صحيحين كـ parameters x و y، والتي تمثل نطاق الأرقام المطلوب جمعها. إليك كيفية عمل الدالة:

  • الحالة الأساسية: إذا كانت x تساوي y، فهذا يعني أننا وصلنا إلى نهاية الـ range، فسوف يرجع x. هذا هو شرط إنهاء الrecursion.
  • حالة الـ recursive: إذا كانت x لا تساوي y، فستضاف القيمة الحالية لـ y إلى نتيجة استدعاء sum مرة أخرى مع نفس x و y-1. يؤدي هذا بشكل فعال إلى تقسيم مجموع الـ range إلى مشاكل فرعية أصغر عن طريق تقليل الحد العلوي (yبمقدار 1 في كل مرة يتم إستدعاء دالة الـ recursive.

في الدالة الرئيسة main ، يتم إستدعاء الدالة sum مع الـ (arguments) 4 و 6 ثم يقوم بإخراج النتيجة إلىشاشة المخرجات باستخدام cout. في هذه الحالة، سيتم حساب مجموع الأعداد الصحيحة من 4 إلى 6 وطباعة النتيجة.

عند تشغيل هذا الكود، فإنه سيخرج مجموع الأعداد الصحيحة من 4 إلى 6، وهو 4 + 5 + 6 = 15. إذن، سيكون ناتج هذا الكود:

15
مشاركة هذا

الدّالّة (7) - Recursion 2

Or copy link

المحتوى
Arabic