C语言经典算法(七)——递归实现阶乘算法的两种方法
2018-01-05 19:47
423 查看
今后继续整理算法并写出自己的理解和备注。 C++实现的:递归实现阶乘算法N!
1、 递归实现n!
<1> 题目描述:输入n值,求解n的阶乘
<2> 方法一:累乘法
<3> 方法二:递归法
源码:
一、 递归实现n!
1、 累乘法
2、 递归法
1、 递归实现n!
<1> 题目描述:输入n值,求解n的阶乘
<2> 方法一:累乘法
<3> 方法二:递归法
源码:
一、 递归实现n!
1、 累乘法
#include<iostream> using namespace std; #define UL unsigned long UL Factorial(UL n) { int sum = 1; for(int i=1; i<=n; ++i)//数学概念 { sum *= i; } return sum; } void main() { UL n; cout<<"请输入n:>"; cin>>n; cout<<n<<"的阶乘为:>"<<Factorial(n)<<endl; }
2、 递归法
#include<iostream> using namespace std; #define UL unsigned long UL Factorial(UL n) { if(n == 0) return 1; else return n * Factorial(n-1);//递归有临界,不能溢出调用栈,则可以直接使用递归,代码简单但效率不会很高 } void main() { UL n; cout<<"请输入n:>"; cin>>n; cout<<n<<"的阶乘为:>"<<Factorial(n)<<endl; }
相关文章推荐
- C语言经典算法(八)——递归实现斐波那契数列的两种方法
- C语言经典算法(九)——递归实现二分查找的两种方法
- C语言经典算法(六)——递归实现字符串长度的两种方法
- 一列数字的规则如下;1,1,2,3,5,8,13,21,34........ 求第30位数字是多少,用递规和非递归两种方法算法实现
- 一列数字的规则如下;1,1,2,3,5,8,13,21,34........ 求第30位数字是多少,用递规和非递归两种方法算法实现
- 算法学习-二叉树节点和两种实现方法,递归非递归
- C语言经典算法(五)——求位设置的两种方法
- 一列数字的规则如下;1,1,2,3,5,8,13,21,34........ 求第30位数字是多少,用递规和非递归两种方法算法实现
- python语言实现阶乘的两种方法---递归和迭代
- 排列和组合算法的实现方法_C语言经典案例
- C语言经典算法(二)——求最小公倍数的两种方法
- java经典算法_021利用递归方法求5!
- 递归 / 迭代两种方法实现查找指定目录下所有文件
- Go语言实现Fibonacci数列的两个算法(使用递归和不使用递归)
- 面试题:单链表逆置(分别用非递归和递归两种方法实现)
- 比较洗牌算法的两种实现方法
- n皇后问题的两种递归方法C语言实现
- 两种方法实现从尾到头打印链表--栈和递归
- 背包算法递归实现,递归转动态规划的一般方法java实现
- 排列和组合算法 C语言经典实现