递归算法:斐波那契数列延伸拓展
2018-01-28 17:50
453 查看
已知一个数列前10项分别是{0, 1, 1, 2, 4, 7, 13, 24, 44, 81}
输入描述:
多组数据输入输出; 第一行输入一个整数n(1<=n<=50)
输出描述:
输出数列中的第n个数。示例1
输入
1 2 3
输出
0 1 1关于此问题首先可以联想到斐波那契数列(兔子繁殖问题),也就是递归的思想。
int Fibonacci( unsigned int n )
{
if( n <= 0 )
return 0;
if( n == 1 )
return 1;
return Fibonacci( n - 1 ) + Fibonacci( n - 2 );
}
思路:
就是前三项的和就是下一项,只要给出前三项,后面的就都可以求出来。通过数组进行前三项的赋初值,利用数组输出。
代码如下:
//#include<bits/stdc++.h>//万能头文件
#include<iostream>
using namespace std;
int main()
{
long long a[50]={0};//定义成long long型
a[1]=0;//此处不要再用int定义了
a[2]=1;
a[3]=1;
for(int i=4;i<=50;i++)
{
a[i]=a[i-1]+a[i-2]+a[i-3]; //利用i变量来进行循环 进行递归运算
}
int n;
while(cin>>n)//控制多组数据的输入输出
{
cout<<a
<<endl;//通过数组进行输出
}
}
相关文章推荐
- 递归算法-阶乘-斐波那契数列
- 斐波那契数列递归算法和非递归算法以及其时间复杂度分析
- PullScrollView详解(六)——延伸拓展(listview中getScrollY()一直等于0、ScrollView中的overScrollBy)
- 递归算法——求取斐波那契数列(1)
- 数据结构6:斐波那契数列,递归算法,求和算法专题
- 斐波那契数列递归算法和非递归算法
- 递归算法——求取斐波那契数列(2)
- 【C】斐波那契数列(递归算法)
- 【Java学习笔记之九】java二维数组及其多维数组的内存应用拓展延伸
- 斐波那契数列 递归算法
- 递归算法深入浅出三:递归求Fibonacci斐波那契数列
- 数据结构_递归算法_斐波那契数列
- 斐波那契数列(Fibonacci)及其拓展
- PullScrollView详解(六)——延伸拓展(listview中getScrollY()一直等于0、ScrollView中的overScrollBy)
- java String类类型的拓展延伸,以及本周知识储备
- 整数分解成若干项之和(DFS)拓展延伸
- 用递归算法求斐波那契数列的第N项值
- NLP︱词向量经验总结(功能作用、高维可视化、R语言实现、大规模语料、延伸拓展)
- 递归算法计算斐波那契数列的第30个数
- 斐波那契数列的递归算法和迭代算法