for循环问题,真的理解不了啊

img


为啥要用fact *= i 不用fact *=n 呢

i一直没变,n一直在递减,所以最后算出的是i^n类型的,如果你用n去累乘,最后算出来的是类似n!的形式
有帮助望采纳

因为n是死的,i是活的啊
每循环一次,i值会减去1,所以只有乘以i,最终你才能得到 n*(n-1)(n-2)...32*1这样的计算结果啊
如果是n的话,你算的就是n的n次方了

你这个是求n^n
i=n 先将n的值保存在i中,之后通过for循环执行n次 fact *= i,整个过程i的值不会变

目前的写法就是求n的n次方,不能理解的写法。

如果是fact*=n就是求n的阶乘