1,斐波那契数列

①递归 时间复杂度O(2^n)
#include <stdio.h>
int fib(int n){
if(n==||n==) return ;
return fib(n-) + fib(n-);
} int main(){
int n;
scanf("%d",&n);
printf("%d\n",fib(n));
return ;
}
②循环 时间复杂度O(n)
#include <stdio.h>
int fibonacci(int n){
  int num1=, num2=, num3=,i;
  if (n <= ){
    printf("斐波拉契数列的第%d项为:%d\n",n,num1);
  }else{
    for (i = ; i < n; i++){
      num3 = num1 + num2;
      num1 = num2;
      num2 = num3;
    }
    printf("斐波拉契数列的第%d项为:%d\n", n, num3);
  }
  return ;
} int main(){
  int num=;
  printf("请输入一个正整数:");
  scanf("%d", &num);
  fibonacci(num);
  return ;
}
③通项公式 时间复杂度O(1)
F(n)=(/√)*{[(+√)/]^n - [(-√)/]^n}(√5表示根号5)
所以,任何斐波那契数都可以在O(1)时间内计算出来,但是有一点,因为牵涉到无理数,所以无法保证精度。
④还有矩阵法,那个暂时不会,以后看线性代数的时候补回来。
奉上链接吧 http://blog.csdn.net/xygy8860/article/details/47087687

C语言 一些算法的更多相关文章

  1. linux内核中的C语言常规算法(前提:你的编译器要支持typeof和type)

    学过C语言的伙伴都知道,曾经比较两个数,输出最大或最小的一个,或者是比较三个数,输出最大或者最小的那个,又或是两个数交换,又或是绝对值等等,其实这些算法在linux内核中通通都有实现,以下的代码是我从 ...

  2. C语言经典算法 - 多维矩阵转一维矩阵的代码

    下边内容内容是关于C语言经典算法 - 多维矩阵转一维矩阵的内容,应该能对码农也有好处. #include <stdio.h>#include <stdlib.h>int mai ...

  3. 一张有料的图片!!!附文件-图片合成器C语言实现算法

    凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 1.打开F盘,先找两个文件,一个是压缩文件(2.rar),另一个是一张图片(1.jpg),将其放到F盘目录下, ...

  4. C语言查找算法之顺序查找、二分查找(折半查找)

    C语言查找算法之顺序查找.二分查找(折半查找),最近考试要用到,网上也有很多例子,我觉得还是自己写的看得懂一些. 顺序查找 /*顺序查找 顺序查找是在一个已知无(或有序)序队列中找出与给定关键字相同的 ...

  5. C语言排序算法之简单交换法排序,直接选择排序,冒泡排序

    C语言排序算法之简单交换法排序,直接选择排序,冒泡排序,最近考试要用到,网上也有很多例子,我觉得还是自己写的看得懂一些. 简单交换法排序 /*简单交换法排序 根据序列中两个记录键值的比较结果来对换这两 ...

  6. c/c++面试总结---c语言基础算法总结2

    c/c++面试总结---c语言基础算法总结2 算法是程序设计的灵魂,好的程序一定是根据合适的算法编程完成的.所有面试过程中重点在考察应聘者基础算法的掌握程度. 上一篇讲解了5中基础的算法,需要在面试之 ...

  7. c/c++面试指导---c语言基础算法总结1

    c语言基础算法总结 1  初学者学习任何一门编程语言都必须要明确,重点是学习编程方法和编程思路,不是学习语法规则,语法规则是为编程实现提供服务和支持.所以只要认真的掌握了c语言编程方法,在学习其它的语 ...

  8. R语言分类算法之随机森林

    R语言分类算法之随机森林 1.原理分析: 随机森林是通过自助法(boot-strap)重采样技术,从原始训练样本集N中有放回地重复随机抽取k个样本生成新的训练集样本集合,然后根据自助样本集生成k个决策 ...

  9. c语言经典算法——查找一个整数数组中第二大数

    题目: 实现一个函数,查找一个整数数组中第二大数. 算法思想: 设置两个变量max1和max2,用来保存最大数和第二大数,然后将数组剩余的数依次与这两个数比较,如果这个数a比max1大,则先将max1 ...

  10. c语言经典算法—求0—7 所能组成的奇数个数

    题目:求0—7 所能组成的奇数个数. 算法思想:这个问题其实是一个排列组合的问题,设这个数为sun=a1a2a3a4a5a6a7a8,a1-a8表示这个数的某位的数值,当一个数的最后一位为奇数时,那么 ...

随机推荐

  1. Simple Style

    <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" x ...

  2. 最大正方形 · Maximal Square

    [抄题]: 在一个二维01矩阵中找到全为1的最大正方形 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 返回 4 [暴力解法]: 时间分析: 空间分析:i j 中保留一 ...

  3. ubuntu库文件路径pkgconfig

    settings--->compiler and bug settings -->link settings 在左边添加libpthread.a  ,右边添加 -lpthread即可. u ...

  4. web02

    高内聚,低耦合 写what 不写how 我们只关心他是什么,得到什么,我们并不关心怎么去得到的 ,那个细节去怎么得的, 都应该在这个层面上屏蔽掉,要关心的时候在点进去,这样就一层层的结构良好的代码 d ...

  5. Flash的不同位宽与CPU地址线的接线问题?

    一般Flash都有8.16.32等这些不同的位宽,当然说白了就是Flash的数据线位数. 在Flash与CPU的地址线的连接问题时:不同位宽的有不同的连接方法: 一般是:位宽为8时CPU的ADDR0与 ...

  6. Jdom的简单操作

    http://blog.csdn.net/heirenheiren/article/details/7354108 http://www.cnblogs.com/hoojo/archive/2011/ ...

  7. VC 调试技术与异常(错误)处理 VC 调试技术与异常(错误)处理

    调试技术与异常(错误)处理 (1)   转载自 52PK游戏论坛 跟踪与中间过程输出 也许一个开发人员一半以上的时间都是在面对错误,所以好的调试/查错方法(工具)会减轻我们工作的负担,也可以让枯燥的D ...

  8. Java enum枚举类型

    java的枚举类型详解: 简单示例: public enum Color{ RED,BLUE,BLACK,YELLOW,GREEN } 复杂示例(带自定义构造方法与类型) public enum En ...

  9. iperf命令 +speedtest-cli

    iperf工具可以用来测量TCP或者是UDP的网络吞吐量,即bandwidth(带宽)测试.  iPerf的主要目标是帮助调整特定路径上的TCP连接. 众所周知,TCP最基本的调整问题是调整TCP窗口 ...

  10. 谈谈INotifyPropertyChanged和ICommand

    WPF,Windows8和Windows Phone开发中的MVVM设计模式中很重要的两个接口是INotifyPropertyChanged和ICommand,深入理解这两个接口的原理,并掌握其正确的 ...