Keep on going never give up.

Let's Go

C#【练习】斐波那契数列求和

C#Lonely2019-05-20 03:30:56131次0条

static void Main(string[] args)
{

    //斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”。
    //指的是这样一个数列:1、1、2、3、5、8、13、21、34、……,这个数列从第3项开始,每一项都等于前两项之和。
    //递推公式:F(n)=F(n-1)+F(n-2)
    //求第30个数是什么?

    //方法一:循环实现
    int sum = 0, temp = 1;
    for (int i = 0; i < 30 / 2; i++)
    {
        sum += temp;
        temp += sum;                
    }
    Console.WriteLine(sum);

    //方法二:递归实现,顺推
    GetNum(0, 1, 0);

    //方法三:递归实现,倒推
    Console.WriteLine(GetNum(30));
            
    Console.ReadKey();
}

static void GetNum(int i, int temp, int sum)
{
    sum += temp;
    temp += sum;
    i++;
    if (i < 30/2)
        GetNum(i, temp, sum);
    else
        Console.WriteLine(sum);
}

static int GetNum(int i)
{
    if (i <= 0)
        return 0;
    else if (i > 0 && i <= 2)
        return 1;
    else
        return GetNum(i - 1) + GetNum(i - 2);
}




暗锚,解决锚点偏移

文章评论

    嘿,来试试登录吧!