{
public static void main(String [] args)
{
int f=1,sum=0;
for(int i=1;i<=4;i++)
{
f*=i;
sum+=f;
}
System.out.println(sum);
}
}
用这个试试
/* 求n! (0<n<10000)*/
#include<stdio.h>
#include<conio.h>
#include<malloc.h>
void cal(unsigned int *s,int n)
{
unsigned long p,k=0;
int i;
/* b用来记录后面的0 ,m用于跟踪应当处理的末尾位置*/
static int m=1,b=0;
for(i=b;i<m;i++)
{
p=(long)s[i]*(long)n+k;
k=p/10000;
s[i]=p-k*10000;
}
if(!s[b])
{
b++;
}
if(k){
s[m++]=k;
}
}
int main(void)
{
unsigned int *s;
int i;
int n;
scanf("%d",&n);
s=(unsigned int *)malloc(n*sizeof(s));
for(i=1;i<n;i++)
{
s[i]=0;
}
s[0]=1;
for(i=2;i<=n;i++)
{
cal(s,i);
}
printf("\n%d!=\n",n);
n--;
while(!s[n])
{
n--;
}
printf("%d",s[n--]);
for(i=n;i>=0;i--)
{
printf("%04d",s[i]);
}
printf("\n");
free(s);
getch();
return 0;
}