c语言求1到100阶乘代码

急急急,希望高手指点!

第1个回答  2008-07-28
1到100?这数够大的了...

#include<stdio.h>
void main()
{
double j=1;
for(int i=1;i<=50;i++)j*=i;
printf("1到100的阶乘是%.0f\n",j);
}

下面用函数的递归调用做:
#include<stdio.h>

double fact(int n)/*求阶乘的函数*/
{
double j;
if(n>1)j=n*fact(n-1);/*递归调用,当n>1时,一直会调用下去,只不过每次参数被减1*/

else
return 1;/*当n被减到1时,返回1,如是会被累积,当n初始为1时直接返回1*/

return j;/*j是当n>1时,最后要的结果*/
}

void main()
{
printf("1到n的阶乘是%.0f\n",fact(5));
}
第2个回答  2008-07-29
呐,这是求10000以内的阶乘

#include<stdio.h>

unsigned x[8000]={0},n,p,i,j,t;
int main()
{
while(scanf("%d",&n)!=EOF)
{
x[p=7998]=1;
for(i=1;i<=n;i++)
{ x[--p]=x[--p]=0;
for(j=7998;j>p;j--) {x[j]*=i; t=j+1; x[j]+=x[t]/100000; x[t]%=100000; }
while(!x[p]) p++;
} for(printf("%u",x[p++]);p<7999;p++) printf("%05u",x[p]); printf("\n");
}
return 0;
}本回答被网友采纳
第3个回答  2020-02-17
main()
{long
i,j,x,num=0;
for(i=1;i<=100;i++)
{x=1;
for(j=1;j<=i;j++)x*=j;
num+=x;
}
printf("%ld",num);
getch();
}
第4个回答  2008-07-28
1,迭代
2,递归
第5个回答  2008-07-28
main()
{long i,j,x,num=0;
for(i=1;i<=100;i++)
{x=1;
for(j=1;j<=i;j++)x*=j;
num+=x;
}
printf("%ld",num);
getch();
}本回答被提问者采纳