/*
10_27 Definition
Created by taotao man on 2015-10-27
brief: 计算斐波那契数列 斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)
// 修改记录:
date:
add SetA();
Change GetA();
*/
#include <stdio.h>
#include <iostream>
using namespace std;
int Fibonacci1(int n) // 实用解法
{
int result[2] = {0, 1};
if(n < 2)
return result[n];
int fibNMinusOne = 1;
int fibNMinusTwo = 0;
int fibN = 0;
for( int i = 2; i <= n; ++ i)
{
fibN = fibNMinusOne + fibNMinusTwo;
fibNMinusTwo = fibNMinusOne;
fibNMinusOne = fibN;
}
return fibN;
}
int Fibonacci2(int n) // 递归
{
if(n <= 0) return 0;
if(n == 1) return 1;
return Fibonacci2(n - 1) + Fibonacci2(n -2);
}
int Fibonacci3(int n) // 数组实现
{
if(n < 0) return 0;
int *a = new int[n + 1];
a[0] = 0;
a[1] = 1;
for(int i = 2; i <= n; i++)
{
a[i] = a[i - 1] + a[i - 2];
}
int m = a[n];
delete a; //释放内存空间
return m;
}
int main(int argc , char *argv[])
{
printf("计算斐波那契数列:n \n");
int a;
scanf_s("%d", &a);
// int b = Fibonacci1(a);
// int b = Fibonacci2(a);
int b = Fibonacci3(a);
printf("要计算的数列n:%d", b);
system("pause");
return 0 ;
}
计算斐波那契数列
最新推荐文章于 2021-10-06 11:53:12 发布