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

c语言:1到n的阶乘之和
不是2个for嵌套吗?
int n = Convert.ToInt32(Console.Read());
int re = 0, jc = 1;
for (int i = 1; i <= n; i++)
{
jc = jc * i;
re += jc;
}
Console.WriteLine(re);

按照第一楼的实现不了啊

第1个回答  2009-03-07
不是,可以用一个递归实现
#include <stdio.h>
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个回答  2020-03-30
#include<conio.h>
#include<stdio.h>
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();
}
第3个回答  推荐于2018-02-16
#include<conio.h>
#include<stdio.h>

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();
}本回答被提问者和网友采纳
第4个回答  2009-03-07
#include<stdio.h>
main()
{ int i, s, n;
pintf("请输入n:");
scanf("%d",n);
for(i=1;i<=n;i++)
s+=fun(n+(n-1));
printf("%d",s);
}
第5个回答  2016-01-14
最基础的思路,是逐个求阶乘,并累加。不过由于阶乘是从1乘到n,所以每个数都单独求一次阶乘,会有很多重复运算,影响效率。
所以更快捷的方式是,在上一个数的阶乘基础上,直接乘上本身,得到当前数的阶乘。
以此为主导,代码如下:
#include <stdio.h>
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);//输出结果。
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网