1-10的阶乘之和

news/2024/11/23 5:17:57/

对于十以内的阶乘之和代码如下:

#include<stdio.h>
int main()
{int i = 0;int sum_mul = 1;int sum_add = 0;for (i = 1; i <= 10; i++){sum_mul = sum_mul * i;sum_add = sum_add + sum_mul;}printf("%d\n", sum_add);return 0;
}

相较于1-10的相加,1-10的阶乘之和显然更加复杂。其复杂性主要体现在需要两个“盛放”sum的变量,而在变量设计上也会出现较多的问题。

对于1-10的相加,sum=sum+i这个式子是解题的核心。在这之前,对sum的初始化也极为重要,显然sum要从1加到10,初始化必然是sum=0;

以如此的思维方式我们迁移到1-10的阶乘之和问题上来,我们不难发现,我们需要一个盛放乘积的sum_mul;一旦知道每个数的sum_mul的值后,接下来的问题与1-10的累加就没有任何区别了。

所以该如何处理sum_mul的值呢?

我们根据累加不难想到先写一个for循环来对着十个数字进行顺次遍历,如果对sum_mul仍采用以0初始化的方式,我们很容易想到直到循环最后,sum_mul的值也一定为0,这与程序设计的目的违背。因此对于sum_mul的设计原则即为:可以盛放所有数的累乘且不改变最终的结果,不难想到对sum_mul赋值为1,在i=1时,sum_mul进行1*1的操作;在i=2时,sum_mul进行1*1*2的操作........在i=10时,sum_mul进行1*1*2*3*4*........*10的操作。在每次的阶乘中,最前端都会有一个看似多余的(1*),这正是我们所初始化的sum_mul,他既保证了累乘的顺利进行,也不改变结果的大小。

因此在遇到累乘类题目,一定要把sum_mul初始化为1,这是非常重要的。


http://www.ppmy.cn/news/694623.html

相关文章

c语言中1e-10啥意思,【1e+10是多大的数?那个e是什么含义?】-1e-

概述:本道作业题是柯汾汲同学的课后练习,分享的知识点是1e,指导老师为万老师,涉及到的知识点涵盖:【1e+10是多大的数?那个e是什么含义?】-1e-物理,下面是柯汾汲作业题的详细。 题目:【1e+10是多大的数?那个e是什么含义?】-1e-物理 楼上的说得都不是太正确,这里的e应…

C1认证学习一(进制学习)

C1认证学习一&#xff08;进制学习&#xff09; 文章目录 C1认证学习一&#xff08;进制学习&#xff09;目标进制的定义二进制八进制十六进制十进制 准换方法其他进制转换为十进制十进制转换为其他的进制二进制转换为八进制二进制转换为十六进制十六进制与八进制之间的转换 目…

求1-20阶乘和

要求&#xff1a;求1-20的阶乘和 #include <stdio.h> int main() {int a;double b, c;b 1;c 0;for (a 1; a < 20; a){b b * a; //累乘c c b; //累加}printf("%e", c);return 0; }运行结果 2.561327e1…

建模方法(十)-灰色预测模型GM(1,1)

**引言&#xff1a;**灰色预测的主要特点是模型使用的不是原始数据序列&#xff0c;而是生成的数据序列。其核心体系是灰色模型&#xff08;Grey Model&#xff0c;简称GM&#xff09;&#xff0c;即对原始数据作累加生成&#xff08;或其它方法生成&#xff09;得到近似的指数…

Java实现 LeetCode 233 数字 1 的个数

233. 数字 1 的个数 给定一个整数 n&#xff0c;计算所有小于等于 n 的非负整数中数字 1 出现的个数。 示例: 输入: 13 输出: 6 解释: 数字 1 出现在以下数字中: 1, 10, 11, 12, 13 。 《编程之美》上这样说: 设N abcde ,其中abcde分别为十进制中各位上的数字。 如果要计…

C1认证学习十四、十五(算法常识、HTML Head 头)

C1认证学习十四、十五&#xff08;算法常识、HTML Head 头&#xff09; 文章目录 C1认证学习十四、十五&#xff08;算法常识、HTML Head 头&#xff09;十四&#xff08;算法常识&#xff09;任务背景任务目标查找算法1、顺序查找2、二分查找3、树表查找4、哈希查找5、其他查找…

1一9数字行书写法_1一9数字行书写法

用行书写数字1到9一般按照这9个数字的大写形式进行书写&#xff0c;其中数字1-9分别对应的大写是&#xff1a;壹、贰、叁、肆、伍、陆、柒、捌、玖、拾。行书书写这十个字要注重字体结构协调、错落有致、上下贯穿。 行书是介于楷书和草书之间的字体&#xff0c;不像草书那么潦草…

C1认证学习二十六(基础选择器)

C1认证学习二十六&#xff08;基础选择器&#xff09; 任务背景 CSS选择器是CSS规则的一部分&#xff0c;用来指定需要设置的样式的HTML元素&#xff0c;通过选择器可以实现CSS对HTML元素一对一或者一对多或者多对一的控制了啦。 任务目标 掌握基础选择器的应用。 五种基础…