蓝桥杯训练题目:求数列的项C++
问题描述
有一个数列,它的第一项是1,第二项是2,第三项是第一项与第二项的和,后面的项依次类推,即F(1)=1,F(2)=2,F(n)=F(n-1)+F(n-2)(n≥3,n∈N*)
输入格式
无
输出格式
输出20行,每行一个数值,表示数列第几项的值。(注意不要输出多余的字符)
思路:这其实就是一个简单的斐波那契数列问题,直接采用简单的递归就可以完成。
然后存储输出,递归函数注意结束条件。
#include<iostream>
using namespace std;
int f(int n)
{
if(n==0)
return 0;
else if(n==1)
return 1;
else if(n==2)
return 2;
else
return f(n-1)+f(n-2);
}
int main()
{
int i;
int sum[30];
for(i=0;i<21;i++)
{
sum[i] = f(i);
if(sum[i]==0)
continue;
else
cout<<sum[i]<<endl;
}
return 0;
}