تسلسل فيبوناتشي C ++

Tslsl Fybwnatshy C



سلسلة / متتالية فيبوناتشي هي سلسلة من الأرقام يتم إنشاؤها عند الحصول على الرقم التالي من خلال الحصول على مجموع آخر رقمين في سلسلة. أول رقمين هما دائمًا 0 و 1. يمكن الحصول على سلسلة فيبوناتشي بأي لغة برمجة ، ولكن هنا سنطبق الكود المصدري في لغة البرمجة C ++. في الرياضيات ، يتم شرح تسلسل فيبوناتشي من خلال العلاقة العودية التي تحتوي على صيغة نموذجية.

الجبهة الوطنية = الجبهة الوطنية -1 + الجبهة -2

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







مثال 1



في هذا المثال ، أولاً ، يتم استخدام مكتبة تدفقات الإدخال والإخراج لتمكين تدفقات cin و cout ، بالإضافة إلى تشجيع مشاركة المستخدم أيضًا من خلال هذه المكتبة. داخل البرنامج الرئيسي ، سوف نأخذ متغيرين من نوع عدد صحيح ونعلن عنهما بقيمة صفرية. يتم استخدام متغير آخر من المصطلح التالي أيضًا والذي تمت تهيئته على أنه صفر ويتم وضعه للاستخدام لاحقًا. سنطلب من المستخدم إدخال الرقم الذي يطلبه في سلسلة فيبوناتشي. بمعنى آخر ، يعتمد عدد الأسطر المعروضة كناتج على مدخلات المستخدم. الرقم المحدد الذي سيدخله المستخدم ، وستحتوي النتيجة على الإجابة في هذه السطور.







نحتاج إلى حلقة 'for' لتكرار ذلك الرقم المحدد الذي يدخله المستخدم لحساب التسلسل. هذا نوع من الحد بعدة أسطر. يتم استخدام عبارة if للتحقق من الرقم ؛ إذا كانت واحدة ، فقم بعرضها كما هي دون أي تغيير. وبالمثل ، سيتم عرض الرقم الثاني بالمثل. في تسلسل فيبوناتشي ، يتم عرض أول رقمين. للمضي قدمًا ، استخدمنا بيان المتابعة. لحساب السلسلة بشكل أكبر ، سنجمع كلا القيمتين. وسيكون هذا هو الرقم الثالث في المتسلسلة. بعد أن تبدأ عملية التبادل هذه ، سيتم تخصيص قيمة المتغير الأول للمتغير الأول ، وسيحتوي المتغير الثاني على القيمة الثالثة المخزنة في المتغير التالي.

المصطلح التالي = t1 + t2 ؛



T1 = t2;

T2 = المصطلح التالي ؛

الآن يتم عرض كل قيمة مفصولة بفواصل. نفذ الكود من خلال مترجم. يستخدم '-o' لحفظ إخراج الكود الموجود في ملف الإدخال.

$ g ++ فيب فيب ج
$. / فيب

يمكنك أن ترى أنه عند تنفيذ البرنامج ، سيطلب المستخدم إدخال الرقم الذي أدخله 7 ، ثم ستكون النتيجة من 7 أسطر ، بغض النظر عن النقطة التي وصلت فيها سلسلة فيبوناتشي إلى النقطة السابعة.

مثال 2

سيحتوي هذا المثال على حساب سلسلة فيبوناتشي عن طريق تحديد قيمة المصطلح التالي. هذا يعني أنه يمكن تخصيص سلسلة فيبوناتشي من خلال توفير رقم محدد إلى أي مدى تريد. على عكس المثال السابق ، لا تعتمد النتيجة على عدد الأسطر ولكن على عدد السلاسل المعطاة برقم. سنبدأ من البرنامج الرئيسي ، المتغيرات هي نفسها ، ونهج مشاركة المستخدم هو نفسه أيضًا. لذلك يتم تهيئة المتغيرين الأولين على أنهما صفر في البداية ، ومتغير المصطلح التالي يُعلن أنه صفر. ثم يقوم المستخدم بإدخال الرقم. ثم يتم عرض أول حدين وهما دائمًا 0 و 1.

سيتم تعيين القيمة التي تم الحصول عليها عن طريق إضافة الأرقام الموجودة في المتغيرين الأولين إلى قيمة المصطلح التالي. هنا يتم استخدام حلقة while لتطبيق شرط إنشاء السلسلة حتى تكون القيمة في متغير المصطلح التالي مساوية أو أقل من الرقم الذي يقدمه المستخدم.

بينما (المصطلح التالي <= ن)

داخل حلقة while هذه ، سيتم تطبيق المنطق عن طريق تبديل الأرقام في الاتجاه العكسي. سيضيف متغير المصطلح التالي قيم المتغيرات مرة أخرى.

المصطلح التالي = t1 + t2 ؛

الآن احفظ الملف وقم بتجميعه لتنفيذ الكود في المحطة.

عند تشغيل الكود ، سيطلب النظام منك رقمًا يجب أن يكون رقمًا موجبًا. ثم سترى أنه عند الحساب ، يتم عرض سلسلة من الأرقام حتى يتم عرض الرقم 55.

مثال 3

سيحتوي هذا الكود المصدري الذي سنذكره على طريقة مختلفة لحساب سلسلة فيبوناتشي. حتى الآن ، قمنا بحساب المتسلسلة داخل البرنامج الرئيسي. يستخدم هذا المثال مشاركة دالة منفصلة لحساب تسلسل الأرقام هذا. داخل الوظيفة ، يتم إجراء مكالمة متكررة لمواصلة العملية. ومن ثم فهو أيضًا مثال على العودية. ستأخذ الوظيفة الرقم الموجود في المعلمة ، والتي سيتم حساب السلسلة من أجلها. يتم إرسال هذا الرقم من البرنامج الرئيسي. يتم استخدام عبارة if للتحقق مما إذا كان الرقم أصغر من أو يساوي 1 ، ثم يتم إرجاع الرقم نفسه لأننا نحتاج إلى رقمين على الأقل لحساب السلسلة. في الحالة الثانية ، عندما يصبح الشرط خاطئًا ويكون الرقم أكبر من 1 ، احسب السلسلة عن طريق استخدام استدعاء متكرر للدالة نفسها بشكل متكرر.

فيب (ن -1) + فيب (ن -2) ؛

يوضح هذا أنه في الجزء الأول ، سيتم طرح رقم واحد قبل تمرير الرقم الإجمالي إلى الوظيفة ، وسيتم طرح هذه القيمة من الرقم الذي تم الحصول عليه من الخلية التي تحتوي على رقمين سابقين للعدد الإجمالي كمعامل.

الآن في البرنامج الرئيسي ، يتم تخصيص الرقم للمتغير ، ويتم إجراء استدعاء الوظيفة الأول لتمرير الرقم إلى الوظيفة. قم الآن بتنفيذ الكود المصدري للملف في الجهاز للحصول على الإجابة. هنا سترى أن '13' هي الإجابة ، حيث أن الرقم الذي تم إدخاله كان 7 ، لذا ستكون السلسلة 0 + 1 + 1 + 2 + 3 + 5 + 8 + 13.

مثال 4

يتضمن هذا المثال نهج OOP (البرمجة الشيئية) لحساب سلسلة فيبوناتشي. يتم إنشاء فئة GFG. في الجزء العام ، يتم إنشاء دالة للحصول على مصفوفة تخزن سلسلة فيبوناتشي.

F [ن +2] ؛

هنا n هو الرقم المعلن على أنه 0 في البداية.

F [0] = 0 ،

F [1] = 1 ،

يتم التصريح عن الأرقام الموجودة في الفهرس 0 و 1 على أنها 0 و 1.

بعد ذلك ، يتم استخدام حلقة 'for' التي يتم فيها حساب سلسلة فيبوناتشي. يتم إضافة الرقمين السابقين إلى السلسلة وسيتم تخزينهما.

F [i] = f [i-1] + f [i -2] ؛

بعد ذلك ، يتم إرجاع الرقم المحدد في فهرس معين.

يتم إجراء استدعاء دالة باستخدام الكائن.

ز.فيب (ن) ؛

الآن قم بتنفيذ الكود ، وسترى أنه نظرًا لأن الرقم هو 11 ، فسيكون التسلسل حتى الرقم الحادي عشر.

استنتاج

هذه المقالة 'تسلسل فيبوناتشي C ++' عبارة عن مزيج من الأساليب المختلفة المستخدمة لإنشاء تسلسل عن طريق إضافة الرقمين السابقين. باستخدام تقنية مبادلة بسيطة ، بالإضافة إلى طريقة العودية وبمساعدة المصفوفات ، يمكننا إنشاء هذه الأرقام في سلسلة. لإنشاء سلسلة فيبوناتشي ، يوصى بأن تكون الأرقام في نوع بيانات عدد صحيح. يمكننا حساب المتسلسلة عن طريق تطبيق قيود على عدد الأسطر وعدد المتسلسلة.