用C语言/*求1+2!+3!+...+20!的和
发布日期:2021-05-08 15:47:17 浏览次数:23 分类:精选文章

本文共 721 字,大约阅读时间需要 2 分钟。

①最开始的想法

#include
int main(){ int n,j; long tem,sum=0;//最开始想到的是循环套嵌。 for(n=1;n<=20;n++)//第一个循环,控制项次(20),控制每一项的乘积 { tem=1;//前面没有想到把它每次小循环前初始化,参考了一个博主的恍然大悟。 for(j=1;j<=n;j++)//第二个循环,在第一个循环的约束下将每一项分别累积。 { tem=tem*j//每个数相乘的累积实际上和每个数相加的累积一样的原理,运算式不同而已。 } sum=sum+tem; } printf("1!+2!+3!+…+20!=%d\n",sum); return 0;}

②很多博主和书本上的答案提供了更简洁的方法(聪明)

#include
int main(){ int n; long tem=1,sum=0; for(n=1;n<=20;n++) { tem=tem*n;//因为原题中下一项其实是上一项(设tem)乘以(项次加一,项次设为n),即为t=t*(n+1) //在本式中,每增加一个项次,n自动累加再与tem相乘,每次相乘完,都代表原题中对应的项的值 sum=sum+tem;//将每次乘完的值加到总和sum中,即可得到答案。 } printf("1!+2!+3!+…+20!=%d\n",sum);//如果要用科学记数法发将上面的long改成double,%d改成想要的,比如%21.11e即可 return 0;}
上一篇:求∑(k=1~100)k+∑(k=1~50)k2+∑(k=1~10)
下一篇:求Sn=a+aa+aaa+...+n个a之间的值,其中a是一个数字,n代表a的位数,n由键盘输入

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2025年03月25日 16时48分23秒