Fibonacci numbers
الدرس 4 من 20 في دورة ألغاز رياضية على Coddy.
يتم إنشاء كل حد جديد في متتالية فيبوناتشي عن طريق جمع الحدين السابقين.
a[n+2]=a[n]+a[n+1]بالبدء بـ 1 و 2، ستكون أول 10 حدود أقل من 100 هي:
1، 2، 3، 5، 8، 13، 21، 34، 55، 89.
تظهر متتالية فيبوناتشي في كتاب Liber Abaci (كتاب الحساب، 1202) لفيبوناتشي حيث تُستخدم لحساب نمو أعداد الأرانب. يدرس فيبوناتشي نمو مجتمع أرانب مثالي (غير واقعي بيولوجياً)، بافتراض أن: زوجاً من الأرانب حديثي الولادة يوضعان في حقل؛ يتزاوج كل زوج عند بلوغه شهراً واحداً، وفي نهاية شهرهم الثاني ينتجون دائماً زوجاً آخر من الأرانب؛ والأرانب لا تموت أبداً، بل تستمر في التكاثر إلى الأبد. طرح فيبوناتشي اللغز: كم سيكون عدد الأزواج في عام واحد؟
في نهاية الشهر الـ n، يكون عدد أزواج الأرانب مساوياً لعدد الأزواج البالغة (أي عدد الأزواج في الشهر n – 2) بالإضافة إلى عدد الأزواج التي كانت حية في الشهر الماضي (الشهر n – 1). العدد في الشهر الـ n هو رقم فيبوناتشي الـ n. [ويكيبيديا، الموسوعة الحرة]
التحدي
سهلاكتب كود بايثون calcFibonacciNums يستقبل عدداً طبيعياً، <i>N</i>، ويعيد عدد حدود متتالية فيبوناتشي (Fibonacci)، التي تبدأ بـ 1 و 2، والتي لا تتجاوز قيمها <i>N</i>.
جرّب بنفسك
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#include "solution.h"
int main() {
int n;
if (scanf("%d", &n) != 1) n = 0;
int r = calcFibonacciNums(n);
printf("%d\n", r);
return 0;
}