long fun(int n)
{
if(n == 1)
return 1;
return n*fun(n-1);
}
供参考:
#include<stdio.h>
long fun(int n)
{
int i;
long m=1;
for(i=1;i<=n;i++) m*=i;
return m;
}
int main()
{
long sum=0;
int n,i;
scanf("%d",&n);
for(i=1;i<=n;i++)
sum += fun(i);
printf("%ld\n",sum);
return 0;
}
long fun(int n)
{
if (n == 0)
return 1;
return n * fun(n-1);
}
注意考虑fun函数返回值溢出问题,n大于20后,就会有溢出,因此需要考虑一下;
不知道你这个问题是否已经解决, 如果还没有解决的话: