c语言函数整数阶乘
c语言求阶乘的函数
阶乘:
阶乘是基斯顿-卡曼(Christian
年发明的运算符号,是数学术语.
C语言
在
C
语言中,使用循环语句可以很方便的求出阶乘的值,下面介绍一个很简单的阶乘例子.(因为网上多数是比较麻烦的方法)
【计算出"
①.!+
......
+
①.0!"的值是多少?】
#includestdio.h
int
main()
{
x;
long
j=1,sum=0;
for(x=1;x=10;x++)
j*=x;
sum+=j;
}
return
0;
Pascal中program
test;
varn:longint;
function
jc(n:longint):qword;
begin
if
n=0
then
jc:=1
else
jc:=n*jc(n-1)end;
readln
(n);
writeln
(jc(n))end.
C++
中
#includeiostream
using
namespace
std;
f(int
n)
e=1;
if(n0)
e=n*f(n-1);
coutn"!="eendl;
e;
f(m);
以上使用
标准
也可以利用积分求浮点数阶乘:
#includecstdio
#includecmath
double
s;
const
e=exp(1.0);
F(double
t)
pow(t,s)*pow(e,-t);
simpson(double
a,double
b)
asr(double
b,double
eps,double
A)
L=simpson(a,c),R=simpson(c,b);
eps)
asr(a,b,eps,simpson(a,b));
scanf("%lf",s);
C语言求阶乘
改为double.
#include
stdio.h
stdlib.h
if(n==0||n==1)
n*f(n-1);
n,k,i;
printf("请输入一个数:");
scanf("%d",k);
for(i=1;i=k;i++)
printf("第%d个数为:",i);
scanf("%d",n);
printf("%d!=%f\n",n,f(n));
我把你写的稍微改了一下,你看看.
C语言中,写函数,求一个整数的阶乘
如图
源代码:
#include?stdio.h
LONG?factorial(BYTE?n){//求n的阶乘,由于阶乘增长非常快,所以能求的n有限.除非用自定义大数据类型
LONG?fact=1,last;
if(n0)return?-1;//负数的阶乘不能这么算,返回-1表示错误
for(;?n1?;n--){
last=fact;//记录上次求得的结果
fact?*=?n;
if(fact?=?0){//正常来说fact必>0,否则一定发生了溢出.若此阶乘会发生溢出,也一定会有fact=0
return?-1;//如果值溢出则返回-1
return?fact;
int?main()
BYTE?n=0,count=0;
LONG?fact=1;
count++;
fact=factorial(n);
if(fact!=-1)//仅当未溢出时显示
printf("count=%d\n",count);//表示溢出
