用C语言求1到N的阶层 的累加和

作者&投稿:真唐 (若有异议请与网页底部的电邮联系)
用c语言编程,求从1的阶乘一直加到20的阶乘。~

1、首先打开C语言编辑器,新建一个c语言的文件,导入头文件并设置一个主函数:

2、程序中设置一个循环的临时变量和接受阶乘和的sum变量,循环中先遍历出20以内的数字子,然后计算每个数的阶乘,在将它们相加起来,因为是一个非常大的数,所以这里sum是double类型的,最后把结果输出就可以了:

3、最后调试编译程序,就会看到输出的20阶乘内的和了,是一个非常大的数。以上就是用c语言求20以内阶乘和的方法:

数值可能比较大, 如果n可能大于12,那么需要用double存储结果.
#include int main(){ int i,n; double r=0, f=1; scanf("%d",&n); for(i=1;i<=n;i++) { f*=i; r+=f; } printf("%.0lf
", r); return 0;}

思路:先定义一个函数用来计算一个数的阶乘,在从1到N循环依次就其累加和,最后输出累加和即可。

参考代码:例如求1到3的阶乘累加和。

#include "stdio.h" 
int fun(int n){
if(n==1) return 1;
else return n*fun(n-1);

#include "math.h"
int main() {
int n,sum=0,i;
scanf("%d",&n);
for(i=1;i<=n;i++)
sum+=fun(i);
printf("%d
",sum);
  return 0;
}
/*
运行结果:
3
9
*/


#include<stdio.h>

long int factorial(int n)

{

   if(n<=1)

      return 1;

   else

      return factorial(n-1)*n;//函数的经典递归调用

}

int main()

{

    int n,i;

    long int xn,sum=0;

    printf("请输入n的值:
");

    scanf("%d",&n);

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

    {

        xn=factorial(n);

        sum=sum+xn;

     }

     printf("1到n阶乘的累加和为:%ld",sum);

     return 0;

}



如果不用阶承函数:

#include<stdio.h>
void main()
{
long int n,a,t=1,sum=0;
scanf("%d",n); /*输入n的值*/
for(a=1;t<=n; ) /*循环n次,就是加上n项*/
{
sum=sum+a; /*所有项的和*/
t=t+1;
a=a*t; /*变到下一项,就是乘以后面一项*/
}
printf("%ld\n",sum); /*输出结果*/
}

如果用阶承函数:

#include<stdio.h>
int jc(int n);
void main()
{int n,i,sum=0;
printf("please input n:"); /*请输入n的值*/
scanf("%d",&n);
/*将输入的数值放入n的容器*/
for (i=1;i<=n;i++)
sum=sum+jc(i); /*求阶乘之和*/
printf("%d\n",sum);
printf("\n");
}
int jc(int n) /*阶乘函数*/
{int i,j=1;
for(i=1;i<=n;i++)
j=j*i;
printf("%d!=%d",i-1,j);
printf("\n");
return j;
}



#include "stdio.h"

long F(int n)
{
int i;
long mul=1;

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

return mul;
}

void main()
{
int i,n;
long sum=0;

printf("plese input the number of n:");
scanf("%d",&n);

for(i=1;i<=n;i++)
sum=sum+F(i);

printf("result is: %ld\n",sum);
}

#include
"stdio.h"
long
F(int
n)
{
int
i;
long
mul=1;
for(i=1;i<=n;i++)
mul=mul*i;
return
mul;
}
void
main()
{
int
i,n;
long
sum=0;
printf("plese
input
the
number
of
n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
sum=sum+F(i);
printf("result
is:
%ld\n",sum);
}