分为普通阶乘及,变式阶乘,(1的阶乘+2的阶乘+3的阶乘…)
文章目录 阶乘算法前言一、普通阶乘算法二 ,阶乘递归函数三、变式阶乘阶乘优化 总结
前言
普通阶乘例如要求出4的阶乘
1* 2* 3* 4=24
提示:以下是本篇文章正文内容,下面案例可供参考
一、普通阶乘算法 int i = 0;int n = 0;int sum = 1;int ssum = 0;int input = 0;scanf("%d", &input);//阶乘 for (i=1; i <=input; i++) { sum = sum * i; ssum = sum; } printf("ret=%dn", ssum);原理:sum里面放的就是阶乘的1 * 2* 3…input
将每次计算的结果保存到ssum里到条件不满足跳出循环
得到打印ssum的结果
二 ,阶乘递归函数 int fanc(int n) {if (n <= 1)return 1;elsen* fanc(n - 1); } 三、变式阶乘
代码如下(示例):
for (n = 1;n <= input;n++) {sum = 1;for (i = 1; i <= n; i++){sum = sum * i;}ssum =ssum+sum; }原理:sum里面放的就是阶乘的1 * 2* 3…input每次循环完看看是否还满足条件
将累加的结果保存到ssum里到条件不满足跳出循环
得到打印ssum的结果
阶乘优化
代码如下(示例):
for(n=1;n<=input;n++){sum = sum * n;ssum = ssum+sum;}原理是一样的只不过简写而已变成累加的方式
总结
阶乘的算法,就是普通的for循环和条件i的控制,控制好变量即可