首页 > 代码库 > 第七节(简单算法)
第七节(简单算法)
/* 关于方法的递归调用 方法调用其实是 “压栈” 方法结束其就是 “弹栈” 1. 方法的递归调用就是方法自身调用自身 2. 以下程序因为递归没有结束条件,所以一直在压栈,没有弹栈,导致 栈内存溢出报错 ! 所以 递归必须要有结束条件;*/public class RecursionTest01{ // 入口 public static void main(String[] args){ arry(); } public static void arry(){ arry(); }}
/* 计算 1-N的求和 不使用 递归 怎么做?*/public class RecursionTest02{ public static void main(String[] args){ int value = http://www.mamicode.com/sum1(6); System.out.println("value = http://www.mamicode.com/" + value); } // 该方法 需要完成1-N的求和 public static int sum1(int n){ int sum = 0; for(int i = 0; i <= n; i++){ //sum = sum + i; sum += i; } return sum; }}
/* 计算 1-N的求和 使用 递归 怎么做?*/public class RecursionTest03{ public static void main(String[] args){ int n = 6; // 调用该方法 int value =http://www.mamicode.com/ sum1(n); System.out.println("value = http://www.mamicode.com/" + value); } // 该方法 需要完成1-N的求和 // 1+2+3+4+5+6+ ..... +N public static int sum1(int n){ System.out.println("我们在外边试试 ------------------------"); if(n == 1){ System.out.println("Arry到底帅不帅 ! 我是NO1"); return 1; } else { System.out.println("Arry到底帅不帅 !"); return n + sum1(n-1); } /* 当 n = 6; n+(n-1) 6+5; */ }}
/* 使用图形,画出一个程序的执行流程 后进先出 方法的执行原理: 方法在调用的时候,才会给该方法在内存中分配空间 如果这个方法只是定义没有调用,则不会在内存中分配空间 方法在调用的时候在 “栈” 中分配空间,(JVM内存中有一块内存是 栈内存) 方法调用其实是 “压栈” 方法结束其就是 “弹栈” 只有方法结束才能弹栈*/public class MethodTest08{ // 入口 public static void main(String[] args){ int i = 100; m1(i); } public static void m1(int i){ m2(i); } public static void m2(int i){ m3(i); } public static void m3(int i){ System.out.println("m3的方法中的i = " + i); } public static void m4(){ } }
第七节(简单算法)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。