در این آموزش تیم کدگیت را با توضیح سری فیبوناچی در سی شارپ همراهی کنید. پیش نیاز این آموزش شامل موارد زیر است:
- آشنایی با if
- آشنایی با for
- آشنایی با روش بازگشتی
- آشنایی با متد
سری فیبوناچی
در ریاضیات سری فیبوناچی به دنبالهای از اعداد گفته میشود که بصورت زیر تعریف میشود:

غیر از دو عدد اول اعداد بعدی از جمع دو عدد قبلی خود بدست میآید. اولین اعداد این سری عبارتاند از:
۰٬ ۱٬ ۱٬ ۲٬ ۳٬ ۵٬ ۸٬ ۱۳٬ ۲۱٬ ۳۴٬ ۵۵٬ ۸۹٬ ۱۴۴٬ ۲۳۳٬ ۳۷۷٬ ۶۱۰٬ ۹۸۷٬ ۱۵۹۷٬ ۲۵۸۴٬ ۴۱۸۱٬ ۶۷۶۵٬ ۱۰۹۴۶٬ ۱۷۷۱۱
این اعداد به نام لئوناردو فیبوناچی ریاضیدان ایتالیایی نام گذاری شدهاست.
سری فیبوناچی در سی شارپ
برای پیاده سازی سری فیبوناچی از دو روش بازگشتی و غیر بازگشتی استفاده میکنیم.
سری فیبوناچی در سی شارپ با روش بازگشتی
برای پیاده سازی سری فیبوناجی به صورت بازگشتی ما ورودی خود را یک متغییر int قرار میدهیم که نشان دهنده مرحله ای است که درون آن هستیم. مثلا اگر مقدار ورودی 6 بود یعنی ما عدد 6 در دنباله فیبونانچی را میخواهیم محاسبه کنیم.کد الگوریتم به صورت زیر است:
class MainClass
{
public static void Main (string[] args)
{
Console.WriteLine ("RecursiveFibonacci");
for (int i = 1; i <= N; i++)
Console.WriteLine(i + ": " + RecursiveFibonacci(i));
Console.ReadKey ();
}
public static long RecursiveFibonacci(int n) {
if (n <= 1) return n;
else return RecursiveFibonacci(n-1) + RecursiveFibonacci(n-2);
}
}
کد بالا شامل دو متد است:
- Fib: متد محاسبه عدد n امین عدد فیبونانچی
- Main: کد تست برنامه فیبونانچی
سری فیبوناچی با روش غیر بازگشتی
در روش غیر بازگشتی ما دو متغیر تعریف میکنیم برای نگهداری دو مرحله قبل از دنباله و از آن برای محاسبه عدد بعدی دنباله فیبوناچی استفاده میکنیم. کد غیر بازگشتی فیبوناچی به صورت زیر است:
public static void Main (string[] args)
{
int N = 10;
int f = 0, g = 1;
for (int i = 1; i <= N; i++) {
f = f + g;
g = f - g;
Console.WriteLine (i+": "+f);
}
}