/*This program can calculate the factorial of (int n).*/
我们提供的服务有:成都网站设计、网站制作、微信公众号开发、网站优化、网站认证、江北ssl等。为上1000家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的江北网站制作公司
#include stdio.h
int factorial(int n)
{
return (n == 1)?n:factorial(n-1)*n;//recursion.
}
int main(void)
{
int n,fac;
printf("Please input the value of n:");//initialize n.
scanf("%d",n);
fac = factorial(n)//variable fac is not necessary.
printf("The result is:%d\n",fac);
return 0;
}
阶乘拓展与再定义
一直以来,由于阶乘定义的不科学,导致以后的阶乘拓展以后存在一些理解上得困扰,和数理逻辑的不顺。
阶乘从正整数一直拓展到复数。传统的定义不明朗。所以必须科学再定义它的概念
真正严谨的阶乘定义应该为:对于数n,所有绝对值小于或等于n的同余数之积。称之为n的阶乘,即n!
对于复数应该是指所有模n小于或等于│n│的同余数之积。。。对于任意实数n的规范表达式为:
正数 n=m+x,m为其正数部,x为其小数部
负数n=-m-x,-m为其正数部,-x为其小数部
C语言中阶乘可以用循环来实现
以下是一个用C语言实现5的阶乘的算法
#includestdio.h
void
main()
{
int
i,t;
t=1;
i=2;
while(i=5)
{
t=t*i;
i=i+1;
}
printf("%d\n",t);
}
/*This program can calculate the factorial of (int n).*/
#include stdio.h
int factorial(int n)
{
return (n == 1)?n:factorial(n-1)*n;//recursion.
}
int main(void)
{
int n,fac;
printf("Please input the value of n:");//initialize n.
scanf("%d",n);
fac = factorial(n)//variable fac is not necessary.
printf("The result is:%d\n",fac);
return 0;
}
扩展资料:
阶乘是定义在自然数范围里的(大多科学计算器只能计算 0~69 的阶乘),小数科学计算器没有阶乘功能,如 0.5!,0.65!,0.777!都是错误的。但是,有时候我们会将Gamma 函数定义为非整数的阶乘,因为当 x 是正整数 n 的时候,Gamma 函数的值是 n-1 的阶乘。
参考资料来源:百度百科-阶乘
我帮你写吧:
long JieCheng(int n )
{
int i,jiecheng;
jiecheng=1;
for(i=1;i
阶乘一般自己用递归写一个函数
int fun(int n) //这儿就只考虑正数的情况
{
if (n == 0 || n == 1)
return 1;
else
return fun(n-1)*n;
}