大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。
n<=39;斐波那契数列特征为除第一项与第二项外其余项均为前两项的和。
class Solution {
public:
int Fibonacci(int n) {
if(n==0)
{
return 0;
}
if (n==1||n==2)
{
return 1;
}
int sum=0,m=0,x=1;
for(int i=1;i<n;i++)
{
sum=m+x;
m=x;
x=sum;
}
return sum;
}
};
动态规划问题:关键点在FOR循环内部,首先将初始两项相加的和存起来,因为此数列前两项和为第三项的值,要求某一项的值也就是某项值前两项的和,同时这前两项又分别是他们自己前两项的和, 所以定义3个变量,一个变量用于存放两项的和,然后把和赋值给第二项,原来第二项变成第一项。