2008-03-18

n!(<100)

关键字: n!(<100)
 #include "stdio.h" 

void main() 
{ 
int n,i,sum=1; 
printf("请输入N的值:"); 
scanf("%d",&n); 
for(i=1;i<=n;i++) 
sum=sum*i; 
printf("%d",sum); 
}
评论
chenchuxin 2008-03-18
#include "stdio.h"
void main()
{
int fun(int x);
float jc(int x);
int n,i;
float k;
printf("type in the n!\n");
scanf("%d",&n);
i=fun (n);
k=jc (n);
printf("%d! is %10.0f\nthere are %d zero!\n",n,k,i);
}


int fun(int x)
{
int i=0;
while(x!=0)
{
x=x/5;
i+=x;
}
return (i);
}


float jc(int x)
{
float i;
if (x==0||x==1)
i=1;
else
i=jc(x-1)*x;
return (i);
}
阶乘jc()函数是仿照谭浩强的c程序设计编写的,由于位数的关系只能算到12!你可以自己改精度

求零部分是自己想出来的,用的是n!=1*2*3*4*5*6*7*8*9*10*11……=1*2*3*(2*2)*5*(2*3)*7*(2*2*2)*(3*3)*(2*5)*11……

后面的式子中有几个5就有 就会得到几个末位0的原理,自己想一下,这个函数可以算很多数。
发表评论

您还没有登录,请登录后发表评论

chenchuxin
搜索本博客
存档
最新评论