C语言 一些算法
2017-07-18 14:40
211 查看
1,斐波那契数列
①递归 时间复杂度O(2^n) #include <stdio.h> int fib(int n){ if(n==1||n==2) return 1; return fib(n-1) + fib(n-2); } int main(){ int n; scanf("%d",&n); printf("%d\n",fib(n)); return 0; }
②循环 时间复杂度O(n)
#include <stdio.h> int fibonacci(int n){ int num1=1, num2=1, num3=0,i; if (n <= 2){ printf("斐波拉契数列的第%d项为:%d\n",n,num1); }else{ for (i = 2; i < n; i++){ num3 = num1 + num2; num1 = num2; num2 = num3; } printf("斐波拉契数列的第%d项为:%d\n", n, num3); } return 0; } int main(){ int num=0; printf("请输入一个正整数:"); scanf("%d", &num); fibonacci(num); return 0; }
③通项公式 时间复杂度O(1)
F(n)=(1/√5)*{[(1+√5)/2]^n - [(1-√5)/2]^n}(√5表示根号5) 所以,任何斐波那契数都可以在O(1)时间内计算出来,但是有一点,因为牵涉到无理数,所以无法保证精度。
④还有矩阵法,那个暂时不会,以后看线性代数的时候补回来。 奉上链接吧 http://blog.csdn.net/xygy8860/article/details/47087687[/code]
相关文章推荐
- c语言的一些算法函数
- 【编程 C】 对C语言编译初级算法的一些心得---函数(1)
- C语言中使用穷举法的一些算法
- 一些C语言中字符串的算法问题解决实例小结
- C语言的一些算法
- C语言一些基本小算法!
- C语言:一些做过的算法题。
- 自己最近写的一些c语言的串的算法
- C语言中,关于&,^,!布尔代数,移位操作的一些巧妙算法
- 最进2011校招笔试中遇到的一些算法c语言的
- 自己做的demo---c语言的基本语法,过阵子可以重新写一些算法跟数据结构了
- c语言一些简单算法
- 一些C语言算法和技巧
- C语言的一些基本算法
- 数据机构与算法-数据结构的一些基本概念
- C语言经典算法:输入某年某月某日,判断这一天是这一年的第几天?
- 黑马程序员--C语言算法十例(下)
- 计算数组的和: C=(3A+4B)/8和C语言实现的FIR算法,改成ARM汇编程序
- 关于算法的一些资料
- 关于typedef和指针函数的用法的一些尝试,依然有些不求甚解-C语言