①求阶乘之和s
s=1!+2!++k! (1<=k<=n)
~
②程序
#inclu原由网de< stdio.h>
/*定义函数*/
long f(int n)
{
int i ;
long E ;
E=1;
for(i=1;i<=n;i++)E=E*i;
return E;
}
/*主函数*/
main()
{
long s;
int k,n;
scanf("%d",&n);
s=0;
for (k=1;k<=n;k++)s=s+f(k);
printf("%ld\n",s);
}
~
③解释
#include< stdio.h>
long f(int n)
/*没试过把f(n)写成f(i)*/
{
int i ;
long E ;//www.58yuanyou.com
/*看见k!,本来用字母k表示(k-1)!,结果k为int。
此处的E表示(k-1)!,数字可能很大,定义为长整形long,
没试过能不能把E直接定义为int*/
E=1;
/*E初始值必须从1开始,不能从0开始,不然E=E*i横为1*/
for(i=1;i<=n;i++)E=E*i;XhMLTb
return E;
}
/*主函数*/
main()
{
long s;
int k,n;
scanf("%d",&www.58yuanyou.com;n);
/*输入阶乘次数上限n*/
s=0;
for (k=1;k<=n;k++)s=s+f(k);
/*如果s的初始值定为1,那么原由网k就要从0开始了,连带把定义函数的i也改为从0开始*/
printf("%ld\n",s);
}