写一个函数,求1!+2!+3!+4!+....+n!.主函数调用该函数,输出结果.(要求函数调用)

2024-12-02 06:52:16
推荐回答(5个)
回答1:

要用啥子语言?C语言和C++语言和Pascal语言我都能整,用C语言写个吧:
#include
int main(void)
{
unsigned long value;
int n;
printf("n=");
scanf("%d",&n);
value=fact(n);
printf("%ul\n",value);
return 0;
}
unsign long fact(int n)
{
unsigned long val=0L,t=0L;
int i,j;
for(i=1;i<=n;i++)
{
t=0;
for(j=1;j<=i;j++)
{
t*=j;//类型会自动转换的
}
val+=t;
}
return val;
}

回答2:

递归算法、我用java写了一个、 public static void main(String[] args) {
long result = 0;
int n = 2;
for (int i = 1; i <= n; i++) {
result += Cumulative(i);
}
System.out.println(result);
} static long Cumulative(int n) { if (n == 1)
return 1;
else
return n * Cumulative(n - 1); }

回答3:

long fun1(int m)
{int i;
long sum=1;
for(i=0;i<=m;i++)
{sum*=i;
}
return sum;
}
long fun2(int n)
{int i;
long sum=0;
for(i=0;i<=n;i++)
sum+=fun1(i);
}
main()
{int n;
long s;
printf("请输入n:\n");
scanf("%d",&n);
s=fun2(n);
printf("",s);
}

回答4:

#include
long factorial(int num)
{
if(1==num)
{
return 1;
}
else
{
return num*factorial(num-1);
}
}
void main()
{
long n,sum=0;
printf("请输入n: ");
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
sum+=factorial(i);
}
printf("\nsum=%d",sum);
}

回答5:

不会!