程序:
C语言程序:
//非递归求法
int Fac1(int n)
{
int i,ret=1;
for (i = 1; i <= n; i++)
{
ret =ret*i;
}
return ret;
}
//递归求法
int Fac(int n)
{
if (n== 1)
{
return 1;
}
else
{
return n*Fac(n - 1);
}
}
int main()
{
printf("%d\n", Fac1(5));
return 0;
}
Java程序
public class Text {
//4.2 实现代码: 递归求 N 的阶乘
public static void main(String[] args) {
int ret = factor(5); //递归
int ret1 = factor1(5); //非递归
System.out.println("ret = " + ret);
System.out.println("ret1 = " + ret1);
}
//递归求阶乘方法
public static int factor(int num) {
if (num == 1) {
return 1;
}
return num * factor(num - 1);
}
//非递归求阶乘
public static int factor1(int num) {
int temp = 1;
for(int i = 1; i <= num; i++) {
temp *= i;
}
return temp;
}
}