眼部整形

首页 » 常识 » 问答 » C语言阶乘之和
TUhjnbcbe - 2024/8/25 9:53:00

①求阶乘之和s

s=1!+2!+···+k!(1<=k<=n)

~

②程序

#includestdio.h

/*定义函数*/

longf(intn)

{

inti;

longE;

E=1;

for(i=1;i<=n;i++)E=E*i;

returnE;

}

/*主函数*/

main()

{

longs;

intk,n;

scanf("%d",n);

s=0;

for(k=1;k<=n;k++)s=s+f(k);

printf("%ld\n",s);

}

~

③解释

#includestdio.h

longf(intn)

/*没试过把f(n)写成f(i)*/

{

inti;

longE;

/*看见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;

returnE;

}

/*主函数*/

main()

{

longs;

intk,n;

scanf("%d",n);

/*输入阶乘次数上限n*/

s=0;

for(k=1;k<=n;k++)s=s+f(k);

/*如果s的初始值定为1,那么k就要从0开始了,连带把定义函数的i也改为从0开始*/

printf("%ld\n",s);

}

1
查看完整版本: C语言阶乘之和