1、C语言-阶乘算法(迭代和递归)记得写注释阶乘 n! =n* (n-1) * (n-2) * (n-3) * (n-4). *1并且0的阶乘为1一、迭代算法迭代法也称辗转法,是一种不断用变量的旧值递推新值的 过程,比方计算累加和,累乘积等。1、思路:同累乘积,计算出n* (n-1) * (n-2) * (n-3) * (n-4). *1 的结果。2、技术点:for语句二、递归算法递归是指函数的定义中使用函数自身的方法。L思路:1、递归终止条件;2、提取重复的逻辑,缩小问 题规模。1 (n = 0)n! =z 、n * (n 1)! ( n 0 )2、技术点:递归函数、if语句编程实现:编写一个函
2、数,实现非负整数n !的计算。方法一:迭代算法#include int main() int jc (int n);int n;printf (”请输入非负整数n的值:*);scanf (f,%dnz &n);printf(n2d!=%dn,n,jc(n); return 0;int jc (int n)( -int/result用来计算阶乘结果for (;n=l;n) result*=n;return result;)方法二:递归算法#include int main() int jc (int n);int n;printf (”请输入正整数n的值:“);scanf(%d,&n);prin
3、tf(Mn%d!=%dnMf n,jc (n); return 0;)int jc (int n)( -if (n=0) return/递归终止条件else return jc (n-1) *n; /重复的逻辑编程实现:编写一个函数,实现1!+2! + 3!+4 ! +5!的计算。方法一:迭代算法include int main() int Ls=O,p=; /s记录阶乘和for(i=l;i=5;i+) (p=p * i ,/ /先计算阶乘 s=s+p; /再求和printf(Hl!+2!+3!+4!+5!=%dnMfs); return 0;)方法二:递归算法#include int main() int jc(int n);int/s记录阶乘和for(i=l;i=5;i+)s+=jc(i);printf(nl!+2!+3!+4!+5!=%dnMrs); return 0;)int jc(int n)( -if (n=0) return 1; /递归终止条件else return jc (n-1) *n; /重复的逻辑