c语言编程求1到100的阶乘
100以内的阶乘计算方法?
100以内的阶乘计算方法?
可以用用C语言来计算,方法如下
int n;
int r[600]{0};
int count(n)
{
int i;
for(i0;i600;i )
r[i]*n;
for(i599;i0;i--)
{
r[i-1]r[i-1] r[i]/10;
r[i]r[i];
}
}
int main()
{
int i;
int reach0;
r[599]1;
scanf(%d,n);
for(i1;in;i )
count(i);
for(i0;i600;i )
{if(r[i]) reach1;
if(r[i]||reach) printf(%d,r[i]);
}
getchar();
getchar();
}
这个程序输入一个100以内的数,可以计算出它的阶乘。TURBO C 调试通过。
C语言怎样求1到100的阶乘和?
利用for循环计算1~100的阶乘,将1~100的阶乘累加到sum中就是所求。;
#includeltstdio.hgt;
void main();{;int i;double t1,sum0 //由于100的阶乘int和long int都放不下.所以用double.;
for(i1ilt100i ) //从1循环到100.;{;t t * i //计算1~100的阶乘.;sum sum t //将1~100的阶乘累加到sum中.;};
printf(#34%.0f #34,sum)
//输出sum.;};
利用for循环计算1~100的阶乘,将1~100的阶乘累加到sum中就是所求。
c语言中阶乘的函数是什么?
阶乘:
阶乘是基斯顿·卡曼(Christian Kramp,1760~1826)于 1808 年发明的运算符号,是数学术语。
一个正整数的阶乘(英语:factorial)是所有小于及等于该数的正整数的积,并且有0的阶乘为1。自然数n的阶乘写作n!。1808年,基斯顿·卡曼引进这个表示法。
亦即n!1×2×3×...×n。阶乘亦可以递归方式定义:0!1,n!(n-1)!×n。
C语言
在 C 语言中,使用循环语句可以很方便的求出阶乘的值,下面介绍一个很简单的阶乘例子。(因为网上多数是比较麻烦的方法)
【计算出“ 1! 2! 3! …… 10!”的值是多少?】
#includeltstdio.hgt
int main()
{
int x
long j1,sum0
for(x1xlt10x )
{
j*x
sum j
}
printf(#341! 2! ... 10!%ld
#34,sum)
return 0
}
/*结果:4037913*/
Pascal中program test
varn:longint
function jc(n:longint):qword
begin if n0 then jc:1 else jc:n*jc(n-1)end
begin readln (n) writeln (jc(n))end.
C 中
#includeltiostreamgt
using namespace std
long long f(int n)
{
long long e1
if(ngt0)
en*f(n-1)
coutltltnltlt#34!#34ltlteltltendl
return e
}
int main()
{
int m20
f(m)
return 0
}
以上使用 C 11 标准
也可以利用积分求浮点数阶乘:
#includeltcstdiogt
#includeltcmathgt
double s
const double eexp(1.0)
double F(double t)
{
return pow(t,s)*pow(e,-t)
}
double simpson(double a,double b)
{
double ca (b-a)/2
return (F(a) 4*F(c) F(b))*(b-a)/6
}
double asr(double a,double b,double eps,double A)
{
double ca (b-a)/2
double Lsimpson(a,c),Rsimpson(c,b)
if(fabs(L R-A)lt15*eps) return L R (L R-A)/15.0
return asr(a,c,eps/2,L) asr(c,b,eps/2,R)
}
double asr(double a,double b,double eps)
{
return asr(a,b,eps,simpson(a,b))
}
int main()
{
scanf(#34%lf#34,amps)
printf(#34%lf
#34,asr(0,1e2,1e-10))
return 0
}