Author:老九 计算机专业 可控之事 沉重冷静 不可控之事 乐观面对 85180586@qq.com 😄 😆 😵 😭 😰 😅 😢 😤 😍 ?? 😎 😩
👍 👎 💯 👏 🔔 🎁 ? 💣 ?? ?? 🌀 🙇 💋 🙏 💦 💩 ?? 💢 ———————————————— 版权声明:本文为CSDN博主「浦上青天」的原创文章
知识点
递归是什么
就是一个方法在执行的时候,自己调用自己
递归的要求
- 有一个趋近于终止的条件
- 实现递归要去推导出一个递归公式
求5的阶乘,代码举例
public static int fact(int n){
if(n == 1){
return n;
}
return n*fact(n - 1);
}
public static void main(String[] args) {
int n = 5;
int ret = fact(n);
System.out.println(ret);
}
这里的终止条件就是 n等于1的时候,返回1 就停止递归了,否则会一直递归下去造成栈区的溢出
分析递归的过程
如上图,这就是上面这段代码的递归过程,先传入5,不符合if条件,所以继续递归,直到递归到n == 1的时候,此时就不再递归了,而是返回一个1,至此,递归结束。然后开始归回来,一直原路返回,直到最后一个return结束,返回了120
递归练习
按顺序打印一个数的每一位
public static void print1(int n){
if(n == 0){
return;
}
print1(n / 10);
System.out.print(n % 10+" ");
}
public static void main(String[] args) {
int n = 1234;
print1(n);
}
递归过程如下
先赞后看,养成习惯!!!^ _ ^??? 每天都更新知识点哦!!! 码字不易,大家的支持就是我坚持下去的动力。点赞后不要忘记关注我哦!
|