目录
前言
阶乘定义 ,所谓 n 的阶乘,就是从 1 开始乘以比前一个数大 1 的数,一直乘到 n,用公式表示就是:1×2×3×4×…×(n-2)×(n-1)×n=n!
1、题目要求
1.以递归的方式编写下面的函数,并编调用函数进行测试。
(1) long fac(int n) //计算并返回n!的值,0!=1
输入 : n
输出 :n!
提示:
① 由于阶乘一般较大,会超出整型甚至是长整型所能表示的范围,因此定义变量时就不能定义为整型。
② 实训中定义了一个long的变量,用来存放结果。因此在输出时应注意long的输出格式。
2、程序完整代码
#include<stdio.h>
long fic(int n)
{
if (n == 1||n==0)
{
return 1;
}
else
{
return fic(n - 1) * n;
}
}
int main()
{
int x=0;
scanf("%d", &x);
printf("n!=%ld\n", fic(x));
return 0;
}
3、程序运行结果
4、非递归实现(循环实现)
int main()
{
int x;
scanf("%d", &x);
int sum = 1;
for (int i = 1; i <= x; i++)
{
sum *= i;
}
printf("%d\n", sum);
return 0;
}