• 第七节(简单算法)


    /*
        关于方法的递归调用
            
            方法调用其实是 “压栈”
            方法结束其就是 “弹栈”                        
            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 = sum1(6);
            
            System.out.println("value = " + 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 = sum1(n);
            
            System.out.println("value = " + 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("ming到底帅不帅 ! 我是NO1");
                return 1;    
            } else {
                System.out.println("ming到底帅不帅 !");
                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(){
            
        }
        
    
    }
  • 相关阅读:
    2016年蓝桥杯B组C/C++决赛题解
    2016年蓝桥杯B组C/C++决赛题目
    线段树区间更新 费马小定理|魔豆传奇
    2015年蓝桥杯B组C/C++决赛题解
    欧拉线性筛 与 欧拉函数 + 几道例题
    2015年蓝桥杯B组C/C++决赛题目
    2017年蓝桥杯B组C/C++决赛题解
    2017年蓝桥杯B组C/C++决赛题目
    2019 蓝桥杯国赛 B 组模拟赛 题解
    2018年蓝桥杯B组C/C++决赛题解
  • 原文地址:https://www.cnblogs.com/Deng1185246160/p/4226733.html
Copyright © 2020-2023  润新知