C++,高效解法:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)

题目描述

大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。

n<=39

方法一:

很慢

class Solution {
public:
	int Fibonacci(int n) {
		if (n == 0)
			return 0;
		else if (n == 1)
			return 1;
		else if (n == 2)
			return 1;
		else
			return Fibonacci(n - 1) + Fibonacci(n - 2);
	}
};

 

C++,高效解法:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)_第1张图片

方法二:

递归包含大量重复运算时间慢;

提交代码:方案二

class Solution {
public:
	int Fibonacci(int n) {
		long int f0 = 0;
		long int f1 = 1;
		if (n==0)
		{
			return f0;
		}
		if (n==1)
		{
			return f1;
		}
		long int fn = 0;
		for (int i=2;i<=n;i++)
		{
			fn = f0 + f1;
			f0 = f1;
			f1 = fn;
		}
		return fn;
	}
};

测试代码: 

int main()
{
	Solution *s = new Solution();

	long int out =s->Fibonacci(33);
	cout << out << endl;
	system("pause");
	return 0;
}

C++,高效解法:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)_第2张图片

 

你可能感兴趣的:(C++刷题)