介乘算法不理解

来源:2-5 有参有返回值的方法

小刘萱

2020-11-27 21:19:37

# 具体遇到的问题
s*=i;这个我不算是很理解,,i代表的是什么呀s=s*i又是求得什么呀,s不是阶乘的结果吗
# 报错信息的截图

# 相关课程内容截图

# 尝试过的解决思路和结果

# 粘贴全部相关代码,切记添加代码注释(请勿截图)

在这里输入代码,可通过选择【代码语言】突出显示

写回答

2回答

好帮手慕阿满

2020-11-28

同学你好,阶乘是指所有小于及等于该数的正整数的积。例如4的阶乘为:4!=1*2*3*4。

http://img.mukewang.com/climg/5fc1bb65096bafaf03700260.jpg

s*=i相当于s=s*i;

这里的i是指当前数值,s存放阶乘的计算结果。s=s*i计算的是之前阶乘结果和当前数值的乘积。

例如当i=为1时,s=1,s=s*i=1,

当i=2时,s=1,s = s*i = 2,

当i=3时,s=2,s=s*i = 2*3 = 6

当i=4时,s=6,s = s*i = 6*4 =24

祝学习愉快~


0

tttjh_

2020-11-28

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

    ​s = 1

    ​s *=i;      // 你可以代入i的值理解一下,s=1 * 1   s=1 * 2    s = 2 * 3   s = 6 * 4   你看现在是不是算好4的阶乘

}

0

0 学习 · 16556 问题

查看课程