大家好,又见面了,我是你们的朋友全栈君。
今后继续整理算法并写出自己的理解和备注。 C++实现的:递归实现阶乘算法N!
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;
}
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/164015.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...