永发信息网

c语言:1到n的阶乘之和

答案:4  悬赏:10  手机版
解决时间 2021-11-19 21:46
  • 提问者网友:火车头
  • 2021-11-18 21:24
c语言:1到n的阶乘之和
最佳答案
  • 五星知识达人网友:酒者煙囻
  • 2021-11-18 21:41
最基础的思路,是逐个求阶乘,并累加。不过由于阶乘是从1乘到n,所以每个数都单独求一次阶乘,会有很多重复运算,影响效率。
所以更快捷的方式是,在上一个数的阶乘基础上,直接乘上本身,得到当前数的阶乘。
以此为主导,代码如下:
#include
int main()
{
int n, i, n1 = 1,s=0;
scanf("%d",&n);//输入n值。
for(i=1; i <= n; i ++)
{
n1*=i;//计算i的阶乘。
s+=n1;//累加。
}
printf("%d\n", s);//输出结果。
}
全部回答
  • 1楼网友:山有枢
  • 2021-11-19 00:02
不是,可以用一个递归实现
#include
int fun(int n)
{
if(n==1)
return 1;
else
return n*fun(n-1);
}

int main()
{
int n,sum=0;;
printf("请输入n:\n");
scanf("%d",&n);
for (int i=1;i<=n;i++)
{
sum+=fun(i);
}
printf("sum=%d\n",sum);
return 0;
}
  • 2楼网友:行雁书
  • 2021-11-18 23:14
#include
main()
{ int i, s, n;
pintf("请输入n:");
scanf("%d",n);
for(i=1;i<=n;i++)
s+=fun(n+(n-1));
printf("%d",s);
}
  • 3楼网友:詩光轨車
  • 2021-11-18 22:28
#include
#include

void main()
{
int N;
int i,s=1,t=0;

printf("please input a number:\n");
scanf("%d",&N);
for(i=1;i<=N;i++)
{
s=s*i;
t=t+s;
}
printf("The number is :%d",t);
getch();
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯