C和指针之函数之实现阶乘和斐波那契数(递归和非递归)
生活随笔
收集整理的這篇文章主要介紹了
C和指针之函数之实现阶乘和斐波那契数(递归和非递归)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1、問題
實現(xiàn)階乘和斐波那契數(shù)(遞歸和非遞歸)
2、代碼實現(xiàn)
#include <stdio.h>int num = 0;
//遞歸實現(xiàn)斐波那契數(shù)
// n <=2, f(n) = 1, n > 2 f(n) = f(n - 1) + f();
long fibonacci(int n)
{//計算fibonacci(3)計算了多少次if (n == 3)num++;if (n <= 2){printf("num is %d\n", num);return 1;}return fibonacci(n - 1) + fibonacci(n - 2);
}//非遞歸實現(xiàn)斐波那契數(shù)
long fibonacci1(int n)
{long result = 1, pre_result = 1, next_pre_result;while (n > 2){n -= 1;next_pre_result = pre_result;pre_result = result;result = pre_result + next_pre_result;}return result;
}//遞歸實現(xiàn)n的階乘
//n <= 1, f(n) = 1, n > 1 f(n) = n * f(n - 1);
long factorial(int n)
{if (n == 1)return 1;return n * factorial(n - 1);
}
總結(jié)
以上是生活随笔為你收集整理的C和指针之函数之实现阶乘和斐波那契数(递归和非递归)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C和指针之函数之归以字符形式按顺序打印数
- 下一篇: C和指针之函数之可变参数