1. 程式人生 > >斐波拉切數列

斐波拉切數列

斐波那契數列(Fibonacci sequence),又稱黃金分割數列、因數學家列昂納多·斐波那契(Leonardoda Fibonacci)以兔子繁殖為例子而引入,故又稱為“兔子數列”,指的是這樣一個數列:1、1、2、3、5、8、13、21、34、……在數學上,斐波納契數列以如下被以遞迴的方法定義:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)。

優秀部落格:https://blog.csdn.net/gatieme/article/details/51115810

#include<stdio.h>
//遞迴求第 n 個斐波拉契數
int Fibonacci(int n)
{
	if(n <= 1)
	{
		return n;
	}
	else
	{
		return Fibonacci(n - 1) + Fibonacci(n - 2);
	}
}
//非遞迴求第 n 個斐波拉契數
long long Fibonacci0(int n)
{
	if(n <= 1)
	{
		return n;
	}
	long long one = 0;
	long long two = 1;
	long long res = 0;
	for(int i = 2; i <= n; i++)
	{
		res = one + two;
		one = two;
		two = res;
	}
	return res;
}

int main()
{
	printf("%lu\n", Fibonacci0(1000000000));
	return 0;
}

青蛙跳臺階問題

矩形覆蓋問題