重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
#include stdio.h
成都创新互联公司网站建设公司提供网站设计和自适应建站服务。团队由有经验的网页设计师、程序员和市场专家组成,能够提供从成都h5网站建设,网站制作,1元广告,模板建站到重庆小程序开发等全方位服务。 以客户为中心,致力于为客户提供创新、高效的解决方案,帮助您打造成功的企业网站。
//在使用前要先对函数进行声明
long fac(int);
int main(void)
{
int n;
long ff;
scanf("%d",n);
ff = fac(n);
printf("%d!=%d\n",n,ff);
return 0;
}
//这里就是fac()
long fac(int x)
{
long f;
if(x == 0 || x== 1)
f = 1;
else
//这里又调用了fac()自己,叫做递归调用
//每次调用时都是将x-1赋给下一个fac()
f = fac(x-1) * x;
//return会把值返回到调用它的函数中去
return f;
}
//主要是要理解这个递归的过程
//假设输入的是3,过程是这样的:
一般用fac表示阶乘函数,这个不在库函数里面,需要自己定义:
#includestdio.h
int fac(int n)
{
if(n==1 || n==0)
{
return 1;
}
else
{
return n*fac(n-1);
}
}
void main()
{
int a,b;
printf("fac(0)=%d\n",fac(1));
printf("fac(2)=%d\n",fac(2));
printf("fac(3)=%d\n",fac(3));
return;
}
fac在C语言中没有特别的含义,既不是关键字也不是库函数,可能是编程人员自定义的一个变量名或函数名等。
通常用fac来表示求阶乘的函数名,fac是阶乘英文(factorial)的前三个字母。
下面定义一个函数名为fac的阶乘函数:
double fac(int n)
{
if(n==0 || n==1) // 0和1的阶乘都为1
return 1;
if(n1)
return n*fac(n-1); // n的阶乘等于n乘以(n-1)的阶乘
}