递归形式与非递归形式的斐波那契数列的用法分析

 更新时间:2013年05月29日 11:30:49   作者:  
本篇文章是对递归形式与非递归形式的斐波那契数列的用法进行了详细的分析介绍,需要的朋友参考下
复制代码 代码如下:

<SPAN style="FONT-SIZE: 32px">采用递归形式和非递归形式实现斐波那契数列</SPAN>

复制代码 代码如下:

#include "stdafx.h"
#include <iostream>
using namespace std;
//递归形式的斐波那契数列
int fibonacciRecursion(int n)
{
 if (n == 1 || n ==2)
 {
  return 1;
 }
 if (n > 2)
 {
  return fibonacciRecursion(n - 1) + fibonacciRecursion(n - 2);
 }
}
//非递归形式的斐波那契数列
//用一个数组作为辅助的空间
//效率较高
int fibonacci(int n)
{
 int temp[2];
 temp[0] = 1;
 temp[1] = 1;
 if (n == 1 || n == 2)
 {
  return 1;
 }
 else
 {
  for (int i = 2; i < n; i ++)
  {
   int tp = temp[0] + temp[1];
   temp[1] = temp[0];
   temp[0] = tp;
  }
  return temp[0];
 }
}

测试代码:
复制代码 代码如下:

int _tmain(int argc, _TCHAR* argv[])
{
 cout << fibonacci(1) << " " << fibonacci(2) << " " << fibonacci(3) << " " << fibonacci(4) << " "
 << fibonacci(5) << " " << fibonacci(6) << " "<< fibonacci(7) << " "<< fibonacci(8) << " "
 << fibonacci(9) << " " << fibonacci(10) << endl;
 cout << fibonacciRecursion(1) << " " << fibonacciRecursion(2) << " " << fibonacciRecursion(3) << " " <<
  fibonacciRecursion(4) << " "<< fibonacciRecursion(5) << " " << fibonacciRecursion(6) << " "<< fibonacciRecursion(7)
  << " "<< fibonacciRecursion(8) << " "<< fibonacciRecursion(9) << " " << fibonacciRecursion(10) << endl;
 return 0;
}

相关文章

  • C语言实现教务管理系统

    C语言实现教务管理系统

    这篇文章主要为大家详细介绍了C语言实现教务管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Qt中QSettings配置文件的读写和应用场景详解

    Qt中QSettings配置文件的读写和应用场景详解

    这篇文章主要给大家介绍了关于Qt中QSettings配置文件的读写和应用场景的相关资料,QSettings能读写配置文件,当配置文件不存在时,可生成配置文件,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-10-10
  • C语言中判断一个char*是不是utf8编码

    C语言中判断一个char*是不是utf8编码

    这篇文章主要介绍了C语言中判断一个char*是不是utf8编码的相关资料,需要的朋友可以参考下
    2017-06-06
  • C++改变编程入口为main函数

    C++改变编程入口为main函数

    这篇文章主要介绍了C++改变编程入口为main函数的方法的相关资料,需要的朋友可以参考下
    2015-06-06
  • C++实现有向图的邻接表表示

    C++实现有向图的邻接表表示

    这篇文章主要为大家详细介绍了C++实现有向图的邻接表表示,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • C++中不能被重载的运算符介绍

    C++中不能被重载的运算符介绍

    其实在C/C++ 里大多数运算符都可以在C++中被重载的。C 的运算符中只有 . 和 ?:(以及 sizeof,技术上可以看作一个运算符)不可以被重载
    2013-10-10
  • 详解C语言中的ttyname()函数和isatty()函数的用法

    详解C语言中的ttyname()函数和isatty()函数的用法

    这篇文章主要介绍了C语言中的ttyname()函数和isatty()函数的用法,是C语言入门学习中的基础知识,需要的朋友可以参考下
    2015-09-09
  • 如何判断一个数是否为4的幂次方?若是,并判断出来是多少次方?

    如何判断一个数是否为4的幂次方?若是,并判断出来是多少次方?

    本篇文章是对如何判断一个数是否为4的幂次方?若是,并判断出来是多少次方的实现方法,进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • C++获得本机所有网卡的IP和MAC地址信息的实现方法

    C++获得本机所有网卡的IP和MAC地址信息的实现方法

    下面小编就为大家带来一篇C++获得本机所有网卡的IP和MAC地址信息的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-10-10
  • C++ Qt实现音视频播放功能

    C++ Qt实现音视频播放功能

    Qt版本 5.9 基于C++11 Qt核心组件与附加组件安装时请打钩 否则可能出现项目中缺少视频播放模块的问题,由于最近着手的Qt项目需要视频播放自己做的时候踩很多坑避免以后踩坑,故在此记录实现过程,感谢的朋友参考下吧
    2021-11-11

最新评论