طباعة الأرقام من 1 إلى n باستخدام recursion

basmala qur an allah madhhab mosaic بسم الله الرحمن الرحيم a462a02761ac8f0dbeb078e54568370a

المطلوب هو طباعة الأرقام من 1 إلى n باستخدام ال recursion.

في هذه المقالة طباعة الأرقام من n إلى 1 باستخدام recursion قمنا بحل مسئلة طباعة الأرقام من n إلى 1 باستخدام ال recursion وكان الكود كالتالي :

function printFromNTo1Recursive(n: number) {
    if (n < 1) return;
    console.log(n);
    printFromNTo1Recursive(n - 1)
}

فإذا أردنا طباعة الأرقام من 1 إلى n باستخدام ال recursion فما العمل ؟

المشكلة هنا هي أن الدالة خاصتنا يجب أن تأخذ input لها هو ال n إذا أنت لديك الرقم الأخير وهذا الرقم n أنت لا تريد طباعته الآن فماذا تفعل؟

فماذا تفعل؟

أنا لا أريد طباعة الرقم n الآن فأقوم باستدعاء دالة أقول لها اذهبي واطبعي الرقم n – 1 وبعد أن تطبيعه أقوم بطباعة الرقم n ، وإنك إن تأملت قليلاً ستلاحظ أنك تريد طباعة الرقم n – 1 أولاً ثم تطبع n ، ومن الذي يقوم بطباعة الرقم n – 1 ؟ الإجابة هي الدالة ونعطيها n – 1 .

إذاً الدالة عندما تبدأ سأقوم باستدعاء الدالة مرة أخرى لتطبع n – 1 أو 4 وعندما تبدأ الدالة(4) ستقوم باستدعاء الدالة التي ستطبع 3 وعندما تبدأ الدالة (3) ستقوم باستدعاء الدالة التي ستطبع 2 وهكذا حتى نصل إلى 1 وهذه ستقوم بطباعة الرقم 1 ثم ستُحذف الدالة(1) من الذاكرة ويعود البرنامج للدالة (2) والدالة(2) كانت لديها وظيفتين أولاً تستدعي الدالة التي ستطبع 1 وقد فعلت ذلك بالفعل وثانياً تطبع الرقم 2، ثم يعود البرنامج للدالة(3) وهكذا.

فيكون الكود في النهاية.

function printFrom1ToNRecursive(n: number) {
    if (n < 1) return;
    printFromNTo1Recursive(n - 1)
    console.log(n);
}

مجرد تبديل الترتيب بين الإستدعاء والوظيفة الأساسية يغير ترتيب العمليات فهكذا يقوم البرنامج بتنفيذ الكود بعد الإستدعاء من الآخر إلى الاول أما في الحالة الأول فإنه ينفذ المهمه الأساسية من الأول إلى الآخر.

picmix.com 3618251

اترك ردّاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *