递归和非递归分别实现求第n个斐波那契数。
2018-03-16 15:09
246 查看
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<Windows.h> //递归和非递归分别实现求第n个斐波那契数 //递归在大数字下速度比较慢 //1 1 2 3 5 8 13 21 int fib_1(int n) { //使用递归实现求第n个斐波那契数 if (n <= 2) return 1; else return fib_1(n - 1) + fib_1(n - 2); //使用递归不可以求太大的数,会重复调用导致溢出。 } int fib_2(int n) { //非递归实现求第n个斐波那契数 int a = 1; int b = 1; int c = 0; if (n <= 2) { return 1; //小于2 返回前两个数值为1. } while (n>2) { c = a + b; a = b; b = c; n--; } return c; } int main() { int n = 0; scanf("%d", &n); printf("%d\n", fib_1(n)); printf("%d\n", fib_2(n)); system("pause"); return 0; }
相关文章推荐
- 1.递归和非递归分别实现求第n个斐波那契数。
- 用递归和非递归分别实现求第n个斐波那契数。
- 递归和非递归分别实现求第n个斐波那契数
- 递归和非递归分别实现求第n个斐波那契数(C语言)
- 一只程序猿的养成日记 第一章 第十节 递归和非递归分别实现求第n个斐波那契数
- 用递归和非递归的方法输出斐波那契数列的第n个元素(C语言实现)
- 一只程序猿的养成日记 第一章 第十五节 递归和非递归分别实现求n的阶乘
- 斐波那契数列的递归实现和非递归实现
- C语言程序-递归和非递归分别实现strlen
- 单链表倒置,给你一个头指针,用递归与非递归的方法分别实现;
- C语言使用非递归和递归函数分别实现阶乘,斐波那契,最大公约数
- C语言程序-递归和非递归分别实现求n的阶乘
- 递归和非递归分别实现strlen
- 一只程序猿的养成日记 第一章 第十四节 递归和非递归分别实现strlen
- C语言使用非递归和递归函数分别实现阶乘,斐波那契,最大公约数
- 递归和非递归分别实现求n的阶乘
- 递归和非递归分别实现strlen(C语言)
- C语言实现-递归和非递归求第n个斐波那契数
- 递归和非递归分别实现strlen
- 查找二叉树的实现(查找,删除,插入)分别用递归和非递归