试题 算法训练 求数列的项
资源限制
时间限制:1.0s 内存限制:256.0MB
问题描述
有一个数列,它的第一项是1,第二项是2,第三项是第一项与第二项的和,后面的项依次类推,即F(1)=1,F(2)=2,F(n)=F(n-1)+F(n-2)(n≥3,n∈N*)
输入格式
无
输出格式
输出20行,每行一个数值,表示数列第几项的值。(注意不要输出多余的字符)
提交代码
编译语言: C++
#include<iostream>
using namespace std;
int F(int n) {
if (n == 1)return 1;
else if(n == 2)return 2;
else return F(n - 1) + F(n - 2);
}
int main() {
for(int i=1;i<=20;i++)
cout << F(i) <<endl;
return 0;
}
编译语言:python
print('''1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
1597
2584
4181
6765
10946
''')
搞笑一下,下面才是正题
# 递归方式实现 生成前20项
lis =[]
for i in range(20):
if i ==0 :
lis.append(1)
elif i ==1:
lis.append(2)
else:
lis.append(lis[i-2]+lis[i-1])#从第3项开始每项值为前两项值之和
for i in range(20):
print(lis[i])