C语言题目,for循环嵌套情况下,为何参数m的位置不同,求出的结果不同?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

C语言题目,for循环嵌套情况下,为何参数m的位置不同,求出的结果不同?

2016-06-07 19:50:43 3206 5

大一小白遇到的C语言题目,为什么对于m的位置不同,求出的结果不同,感觉m的位置对运算没有影响

题目是求1到20的阶乘之和,但是对于M=1在循环中的位置不同,编译器给出的结果也不同。

double i,j,n=0,m;
    for(i=1;i<=20;i++){
        m=1;
        for(j=1;j<=i;j++){
            m*=j;
            n=m+n;}}
    printf("%.0f",n);

![Uploading screenshot . . .]()

取消 提交回答
全部回答(5)
  • 游客x4uu57rrcwjuo
    2020-03-19 10:55:08

    问题表达不清晰

    0 0
  • 一生有你llx
    2019-07-17 19:30:54

    问题表达不清晰

    0 0
  • xumaojun
    2019-07-17 19:30:54

    没有明白想表达什么意思

    0 0
  • nothingfinal
    2019-07-17 19:30:54

    问题表达不清晰

    0 0
  • a123456678
    2019-07-17 19:30:53

    我是这么理解的,M是每次计算阶乘的起点,如计算2的阶乘起点是1,计算10的阶乘的起点是1,既然是大一的学生或许我建议一下,取变量名的时候稍微花点心思了,又或许你的教材辅导书就是这么写的。。。

    我发现底下有答案提出了不同的解题思路了
    我的想法是减少乘的次数,这其中的规律不难发现

    2! = 2 * 1!;
    3! = 3 * 2!;
    ...
    n! = n * (n-1)!;
    所以我们每次可以保留上一次阶乘的结果
    以下是伪代码

    lastFact = 1 # 1的阶乘就是1
    sum = 1 # 一开始就可以将sum置为1
    for i in 2..20

    lastFact *= i
    sum += lastFact 
    0 0
添加回答
相关问答

17

回答

教你如何简单将OSS bucket挂载成为阿里云ECS服务器本地盘

梦丫头 2017-02-17 14:01:12 37989浏览量 回答数 17

5

回答

【阿里云】linux服务器安装nginx配置多个站点两种方法

自娱自乐 2014-03-29 14:53:12 22445浏览量 回答数 5

9

回答

阿里云ECS安装虚拟主机系统DirectAdmin开心版百分百成功的方法

hxs 2014-05-26 20:05:30 34505浏览量 回答数 9

10

回答

AMH5.0安装脚本顺便提醒是收费的每月5元。

是非良人 2014-08-31 15:13:27 20886浏览量 回答数 10

8

回答

阿里云服务器内网传输使用指南

任逍遥 2013-03-22 00:05:42 30783浏览量 回答数 8

3

回答

2020年05月编程排行榜-C语言继2015年,重新成为编程排行榜第一名

huc_逆天 2020-05-06 13:43:42 35589浏览量 回答数 3

4

回答

上传到OSS的文件md5hash值如何获取?!!

asker 2015-08-05 16:52:10 21304浏览量 回答数 4

14

回答

C语言基础 【精品问答合集】

我是管理员 2018-07-13 15:37:00 26685浏览量 回答数 14

10

回答

阿里云centos静默安装oracle

美味的小鱼 2014-08-12 14:23:44 30653浏览量 回答数 10

5

回答

C语言算法 【精品问答合集】

我是管理员 2018-07-13 15:51:28 27084浏览量 回答数 5
+关注
0
文章
14879
问答
问答排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载