题目分别利用递归和非递归的方法求n的阶乘1、题目分析规定0的阶乘为1。非递归我们先列举几个求阶乘的案例从中找寻规律。0 11 12 1 * 23 1 * 2 * 3从上述几个例子可以看出当一个数为0时阶乘即位1.当一个数大于0时计算的方法是从1一直乘到这个数。那么就可以利用循环进行累乘运算定义变量i控制循环次数循环次数由n决定n是多少就循环多少次。已知循环次数可以利用for构造循环体。递归通过上面的分析我们可以得到阶乘公式得到这个公式我们就可以利用分支构造递归结束条件以实现函数递归。2、代码演示//非递归#includestdio.hintmain(){intn0;scanf(%d,n);intsum1;if(n!0){inti1;for(i;in;i)//循环n次从1乘到n{sum*i;//累乘}}printf(%d,sum);return0;}//递归#includestdio.hintfrac(intn){if(n){returnfrac(n-1)*n;}else{return1;}}intmain(){intn0;scanf(%d,n);intrfrac(n);printf(%d,r);}