怎样用C语言计算1到10的阶层的和?

二、编写程序,计算1!+2!+3!+.......+10!我是初学者,用的是WIN-TC软件,拜托帮帮忙,对的一定会加分!... 二、编写程序,计算1!+2!+3!+.......+10!

我是初学者,用的是WIN-TC软件,拜托帮帮忙,对的一定会加分!
展开
 我来答
四舍五不入6
高粉答主

2019-10-07 · 醉心答题,欢迎关注
知道答主
回答量:147
采纳率:100%
帮助的人:2.2万
展开全部

C语言中实现阶乘的计算可以采用递归或者循环,通常循环用的比较多,循环可以采用while循环和for循环等。

下面以for循环为例实现1-10的阶乘的和的计算,代码如下:

int i,sum=1,S=0;   

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

 {

sum=sum*i;

S=S+sum;

}

上述的变量S在运行结束后的结果值即为1-10的阶乘的和。

扩展资料:

数学函数

所在函数库为math.h、stdio.h、string.h、float.h

int abs(int i) 返回整型参数i的绝对值

double atof(char *nptr) 将字符串nptr转换成浮点数并返回这个浮点数

double atoi(char *nptr) 将字符串nptr转换成整数并返回这个整数

double atol(char *nptr) 将字符串nptr转换成长整数并返回这个整数

char *ecvt(double value,int ndigit,int *decpt,int *sign),将浮点数value转换成字符串并返回该字符串

参考资料来源:百度百科-C语言函数

mlper_
推荐于2017-09-18 · TA获得超过8017个赞
知道大有可为答主
回答量:4863
采纳率:78%
帮助的人:1230万
展开全部
  1. C语言中实现阶乘的计算可以采用递归或者循环,通常循环用的比较多

  2. 循环可以采用while循环和for循环等

  3. 下面以for循环为例实现1-10的阶乘的和的计算,代码如下:

       int i,sum=1,S=0;   

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

       {

         sum=sum*i;

         S=S+sum;

      }

4.上述的变量S在运行结束后的结果值即为1-10的阶乘的和

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fqhafei
2007-12-09 · TA获得超过133个赞
知道小有建树答主
回答量:54
采纳率:100%
帮助的人:20.3万
展开全部
#include "stdio.h"
void main()
{int i,j;
long sum=0;
for(i=1;i<10;i++)
{for(j=1;j<=i;j++)
j*=j;
sum+=j;
}
pfintf("1!+2!+3!+.......+10!阶乘的和是%ld",sum);
}
//tc现已经学的不多了,界面太刻板了,建议你学习用visul c++这个工具
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
萌哒牛
2007-12-09 · TA获得超过1910个赞
知道小有建树答主
回答量:1100
采纳率:0%
帮助的人:129万
展开全部
1!+2!+3!+.......+10!
main()
{
int i;
long p=1;
long s=0;
for (i=1;i<=10;i++)
{
p=p*i;
s=s+p;
}
printf("1!+2!+...+10! = %ld\n",s);

}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
以画屏屏8748
2007-12-09 · TA获得超过7191个赞
知道大有可为答主
回答量:2581
采纳率:0%
帮助的人:3316万
展开全部
#include <stdio.h>
#include <mem.h>
#define ASIZE 1000
int main()
{
int i,k,t,x=20; //计算到20!
char v[ASIZE],z[ASIZE];
memset(v,0,ASIZE); v[0]=1;
memset(z,0,ASIZE); z[0]=1;
for(k=2; k<=x; k++)
{
t=0;
for(i=0; i<ASIZE-1; i++)
{
t=z[i]*k+t;
z[i]=t%10;
t/=10;
}
t=0;
for(i=0; i<ASIZE-1; i++)
{
t+=v[i]+z[i];
v[i]=t%10;
t/=10;
}
}
t=0;
for(i=ASIZE-1;i>=0;i--)
if(t||v[i])
{
printf("%d",v[i]);
t=1;
}
return 0;
}

执行结果: 2561327494111820313

如果把 x=20 换成 x=100, 计算 1!+2!+3!+...+99!+100!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式