题目一:求n的阶乘
阶乘介绍:
阶乘是一种常见的数学问题,例如求5的阶乘,则公式就为->1*2*3*4*5,
同理可得,求n的阶乘也如此,从1一直递增相乘直到n.
代码如下:
![](https://i-blog.csdnimg.cn/blog_migrate/3bfa739d3bafcdca1edc105fe76045e7.png)
扩展:
计算一个区间阶乘相加的值,例如1~5数字阶乘之和.
代码如下:
(一).
![](https://i-blog.csdnimg.cn/blog_migrate/17345cdab1302b01e9a52ee5f0c73e2a.png)
(二).
![](https://i-blog.csdnimg.cn/blog_migrate/d616389f614ed27330c2215e56e5967b.png)
//效率高
//该方法的前提第一次阶乘res为1或者已经算出开头范围的热身
//如:求5~8,这份代码就要修改,要写把5的阶乘算出来,然后就可以 res *= i;sum +=res
for (int i = 1; i <= 10; i++)
{
res *= i; //res每次保留着上一个阶乘,则进行下一个阶乘求解时,只需要乘上本次的数
//列如到4的阶乘,之前已经计算了3的阶乘了,res=6 --> 1*2*3,估再res*4
sum += res;
}
printf("sum = %d\n", sum);