يجب عليك استخدام العودية لحل هذه المشكلات.
من الممكن حلها بشكل غير مرغوب فيه ، وربما يتم إغراء استخدام الأدوات التي تفهمها بالفعل. ومع ذلك ، فإن هذا يهزم الغرض من هذا التمرين ، وهو أن يصبح أكثر راحة في استخدام العودية.
لكل من هذه التمارين ، دون استخدام أي رمز ، من المتوقع أن تحدد ما يلي:
ابدأ كل مشكلة من خلال فهم المشكلة والتوصل إلى بعض المدخلات والمخرجات. في بعض التدريبات ، قدمنا عينة من المدخلات والمخرجات لراحتك.
اكتب وظيفة متكررة تحسب عدد الأغنام التي تقفز فوق السياج. يجب أن يأخذ برنامجك رقمًا كمدخلات. يجب أن يكون هذا الرقم هو عدد الأغنام التي لديك. يجب أن تعرض الوظيفة الرقم جنبًا إلى جنب مع رسالة "خروف آخر يقفز فوق السياج" حتى لا يتم ترك مزيد من الأغنام.
اكتب وظيفة تسمى PowerCalculator () التي تأخذ معلمتين ، عدد صحيح كقاعدة ، وآخر عدد صحيح كأسعار. تُرجع الوظيفة قيمة القاعدة التي أثيرت إلى قوة الأسس. استخدم الأسس فقط من أو يساوي 0 (الأرقام الإيجابية)
يجب أن تكون powercalculator (10،2) إرجاع 100 -powercalculator (10 ، -2) يجب أن تكون الأسد> = 0
اكتب وظيفة تعكس سلسلة. خذ سلسلة كمدخلات ، عكس السلسلة ، وأرجع السلسلة الجديدة.
حساب الرقم الثلاثي التاسع. يحسب رقم الثلاثي الكائنات التي يمكن أن تشكل مثلثًا متساويًا. الرقم الثلاثي nth هو عدد النقاط التي تتكون من مثلث مع نقاط n على الجانب ، ويساوي مجموع الأرقام الطبيعية n من 1 إلى n. هذا هو تسلسل الأرقام الثلاثي: 1 ، 3 ، 6 ، 10 ، 15 ، 21 ، 28 ، 36 ، 45.
اكتب وظيفة متكررة تقسم سلسلة بناءً على فاصل (على غرار string.prototype.split). لا تستخدم وظيفة تقسيم JS Array لحل هذه المشكلة.
اكتب وظيفة متكررة تطبع تسلسل فيبوناتشي لرقم معين. تسلسل Fibonacci هو سلسلة من الأرقام التي يكون فيها كل رقم هو مجموع الأرقام السابقة. على سبيل المثال ، فإن رقم فيبوناتشي السابع في تسلسل فيبوناتشي هو 13. يبدو التسلسل على النحو التالي: 1 ، 1 ، 2 ، 3 ، 5 ، 8 ، 13.
اكتب وظيفة متكررة تجد العامل في رقم معين. يمكن العثور على عامل رقم عدد عن طريق ضرب هذا الرقم حسب كل رقم بينه وبين 1. على سبيل المثال ، فإن مصنع 5 هو 5 * 4 * 3 * 2 * 1 = 120.
لقد دخلت متاهة وتحتاج إلى العثور على طريقك للخروج منه. هناك أكثر من مسارات واحدة محتملة عبر المتاهة إلى نقطة الخروج الفردية. اكتب وظيفة عودية تساعدك على العثور على مسار ممكن عبر المتاهة.
يتم تمثيل المتاهة كمصفوفة n*m. نقطة البداية هي الزاوية اليسرى العلوية ويتم الإشارة إلى الخروج بواسطة E. لغرض البساطة ، استخدم الزاوية اليمنى السفلية من المتاهة كخروج. لا يمكنك الخروج خارج حدود المتاهة. المتاهة لديها مقاطع محظورة ولا يمكنك المرور بها. يشار إلى هذه المقاطع المحظورة بواسطة *. يمر عبر خلية محظورة وكذلك تمرير الخلية التي مررت بها بالفعل من قبل.
للمتاهة الكبيرة في التدريبات ، يمكن أن يكون مسار الخروج المحتمل rrddllddrrrrrr
استخدم المتاهة الكبيرة أعلاه وقم بتعديل الحل الخاص بك حتى يجد جميع مسارات الخروج المحتملة عبر المتاهة. للعثور على جميع مسارات الخروج الممكنة عبر المتاهة ، فكر في عدد الأماكن التي يمكنك تحريكها في كل منعطف. ربما صعودا ، أسفل ، اليسار أو اليمين؟
لاحظ أن هذه المتاهة لديها 3 مسارات مخارج. يجب أن تطبع وظيفتك المتكررة جميع المسارات الثلاثة مع الاتجاهات المناسبة. على سبيل المثال ، بالنظر إلى المتاهة أعلاه ، يجب على البرنامج إخراج ما يلي:
الجنسي الإقليمي هو أي كلمة أو عبارة تستخدم أحرف كلمة أو عبارة معينة ("الموضوع") بترتيب آخر تم ترتيبها. اكتب وظيفة تنشئ قائمة جنسياً ، وسرد جميع إعادة ترتيب كلمة معينة. على سبيل المثال ، إذا كان المستخدمون "شرقًا" ، فيجب أن يسرد البرنامج جميع التباديل الـ 24 ، بما في ذلك "EATS" و "ETAs" و "Teas" وغير الكلام مثل "Tsae".
تلميح: بالنسبة للخوارزمية الخاصة بك ، قد ترغب في التفكير في بادئة واستخدام ذلك لإنشاء الكلمات الجديدة. على سبيل المثال ، بالنظر إلى "East" ، استخدم "E" كبادئة ووضعه أمام جميع التباديل الستة من "AST" - "AST" ، "ATS" ، "SAT" ، "STA" ، "Tas" ، و "TSA". سيعطيك هذا عبارة "East" و "Eats" و "Esat" و "Esta" و "Etas" و "Etsa". تابع بهذه الطريقة حتى تجد جميع الأناقس لـ "الشرق". بعد ذلك ، يمكنك استخدام "A" كبادئة وتأمل الكلمات المتبقية "EST". بالنسبة لـ "الشرق" ، يجب أن يكون هناك 24 كلمة.
اكتب وظيفة عودية تطبع كائن الرسم البياني في التدريبات. يجب أن يكون خرجك كما هو موضح في الحفر مع المسافة البادئة المناسبة لإظهار التسلسل الهرمي.
اكتب وظيفة متكررة تطبع التمثيل الثنائي لرقم معين. على سبيل المثال ، يجب أن يأخذ البرنامج 3 كمدخلات وطباعة 11 كإخراج ، أو 25 كإدخال وطباعة 11001 كإخراج. لاحظ أن التمثيل الثنائي لـ 0 يجب أن يكون 0.