求第n個斐波那契數的值(遞歸和非遞歸解法)

個人代碼如下:

(1)遞歸:

long long Fbl(int n)
{
	if(n == 1 || n == 2)
		return 1;
	return Fbl(n-2) + Fbl(n-1);
}

int main()
{
	//1 1 2 3 5 8
	cout<< Fbl(4);
	return 0;
}

(2)非遞歸:

long long Fbl(int n)
{
	if(n == 1 || n == 2)
		return 1;

	long long sum = 1;
	long long front = 1, back = 1;
	for(int i = 3;i <= n; ++i)
	{
		front = back;
		back = sum;
		sum = front + back;
	}
	return sum;
}

int main()
{
	//1 1 2 3 5 8
	cout<< Fbl(4);
	return 0;
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章