什么是递归:
1.1含义: 递归就是一个函数直接或者间接的调用自己的方法;
1.2如何利用递归求阶乘?
分析:
例如:求4的阶乘 等于4*3*2*1;
假设我们把使n=4的话,那么等式就变成 n*(n-1)*(n-2)(n-3)
第一个数:n
第二个数=第一个数-1;
第三个数=第二个数-1;
…
通过观察我们发现,n每次都乘n本身减去一个数。直到n减去一个数后等于0;
于是就有:(不知道什么原因,这张图显示不了,代码参考最下方)![这里写图片描述](https://img-blog.csdn.net/2018082515440526?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNjczNDg2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
什么是迭代:
2.1直白的说就是:每一次操作重复上一个操作,一步一步得出结果
2.2阶乘求法
分析: 求4的阶乘 等于4*3*2*1
第一个数=1;
第二个数=第一个数+1;
第三个数=第二个数+1;
….
假如我们把i=1的话 ,等式变成: i*(i+1)(i+1+1)(i+1+1+1)
我们每一次乘的数都是上一个数加1而来的
于是就有:
完整代码:
Java递归算法和迭代算法求阶乘
最新推荐文章于 2024-04-17 03:12:10 发布