阶乘问题
大家好!我想写一个阶乘的程序!代码如下
程序代码:/* 阶乘*/
#include
#include
int main(void)
{
long int n;
long int s;
long int j;
printf("请输入n!");
scanf("%ld",&n);
for(j=n;j<0;j-- )
{
j=n*j;
}
printf("阶乘值为",j);
getch();
} 但是有问题!
请改正!
如果可以请快一些!
程序代码:#include <stdio.h>
#include <conio.h>
int main(void)
{
int n,j;
long int s=1;
printf("请输入n:");
scanf("%d",&n);
while(n>31 || n<0)
{
printf("ERROR!重新输入n:");
scanf("%d",&n);
}
for(j=n;j>0;j-- )
{
s*=j;
}
printf("%d的阶乘值为%ld",n,s);
getch();
} 
程序代码:#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;
}
