(C语言)循环与递归求斐波那契数
2017-11-29 00:16
781 查看
#include <stdio.h> long Fibonacci_loop(int n); long Fibonacci_rec(int n); int main() { int n; printf("Enter a number:\n"); scanf("%d",&n); printf("loop Fibonacci:%ld\n",Fibonacci_loop(n)); printf("recursion Fibonacci:%d\n",Fibonacci_rec(n)); return 0; } long Fibonacci_loop(int n) { int i; long sum,sum1,re; if(n<=2) return 1; for(sum=1,re=1,sum1=1,i=1;i<=(n-2);i++) { re=sum; sum=sum1+sum; sum1=re; } return sum; } long Fibonacci_rec(int n) { if(n>2) return Fibonacci_rec(n-1)+Fibonacci_rec(n-2); else return 1; }
循环函数原创,递归书上代码。
当n过大时,递归部分调用过多变量(2的n-1次方),系统会占用大量内存,运行较慢。
相关文章推荐
- C语言使用普通循环方法和递归求斐波那契序列示例代码
- C语言用递归求斐波那契数,让你发现递归的缺陷和效率瓶颈
- 【C语言】用递归和循环两种方法实现单链表倒置
- 斐波那契数列的递归,迭代(循环),通项公式三种实现
- C语言用递归求斐波那契数,让你发现递归的缺陷和效率瓶颈
- C语言斐波那契数列的四种实现方式—递归,迭代,数组,队列
- 斐波那契数组-递归和循环实现
- C语言中的循环与递归
- 微软c语言循环递归笔试题分析
- 【C语言】求取第n个斐波那契数的时间复杂度、空间复杂度分析,用三种方式实现(普通递归,循环,优化递归)
- 二分查找法的C语言实现:递归与循环
- C语言:字符串逆置(循环法,递归写法)
- C语言递归算法系列_打印杨辉三角 循环与递归同时使用(4)
- 斐波那契数列之递归、循环
- 9.10 编写并测试Fibonacii函数,该函数用循环代替递归计算斐波那契数。
- C语言循环和递归两种方法求n的阶乘
- C语言循环与递归
- 斐波那契数列 (递归 循环)
- 斐波那契数列的递归,迭代(循环),通项公式三种实现
- C语言用分别用递归和循环求数字的阶乘的方法