当前位置:首页 » 《关于电脑》 » 正文

【JAVA干货店】带你玩转数组与递归

12 人参与  2024年09月22日 10:01  分类 : 《关于电脑》  评论

点击全文阅读


](https://img-home.csdnimg.cn/images/20220524100510.png#pic_center)

?个人主页: Aileen_0v0
?热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法
?个人格言:“没有罗马,那就自己创造罗马~”

文章目录

`递归``利用递归求斐波那契数列``数组入门`

递归

自己调用自己

StackOverflowError:栈溢出错误,出现的原因可能是以下情况:
(1)结束条件不对
(2)结束条件没有

public class X {    //求n的阶乘    public static int func(int n){        if(n == 1){            return 1;        }else{            return n * func(n-1);        }    }    public static void main(String[] args) {        System.out.println(func(5));    }}

public class X {// 通过递归打印每一位数    public static void fnum(int n){        if (n < 10) {            System.out.println(n);            return;        }else {            fnum(n / 10);            System.out.println( n % 10);        }    }    public static void main(String[] args) {        fnum(123);    }}

在这里插入图片描述


利用递归求斐波那契数列

public class X {    public static  int fib(int n) {        if (n == 1 || n == 2) {            return 1;        }        int m = fib(n - 1) + fib(n - 2);        return  m;    }    public static void main(String[] args) {        System.out.println(fib(5));    }}
利用递归求斐波那契数列的缺点 会进行大量的重复计算 ,使得计算速度变慢
利用迭代求斐波那契数列
public class X {    //通过循环方式求斐波那契数列,可避免出现冗余运算    public static int fib(int n){        if (n == 2 || n == 1 ){            return 1;        }        int m1 = 1;        int m2 = 1;        int cur = 0;        for(int i=3 ;i <= n; i++){            cur =m1 + m2;            m2 = m1;            m1 = cur;        }        return  cur;    }    public static void main(String[] args) {        System.out.println(fib(10));    }}

数组入门

数组是最简单的一种数据结构
存放的都是相同数据类型
空间都连在一起
每个空间有自己的编号,起始位置从0开始.
创建数组的三种方式
public class X {    //直接把数据放进数组,无需初始化    //写法1:    int [] array = {1,2,3,4,5};    //写法2:    int [] array2 = new int[]{1,2,3,4,5};        //初始化一个含五个变量的空数组    int [] array3 = new int[5];  }

创建数组的注意事项
public class X {    public static void main(String[] args) {        //new这个关键字就是用来创建一个空数组        int[] array;        array = new int[]{1,2,3,4};        //中括号当中不能写数字,字符类型用单引号.        int[] array1 = {1,2,3,4,5};        char[] chars1 = {'a','b'};        //布尔类型默认值为false        boolean[] array2 = new boolean[10];        System.out.println(array2[9]);        //引用数据类型的默认值为null        String[] array3 = new String[10];        System.out.println("Aileen");    }

在这里插入图片描述

public class X {        //局部变量使用时要进行初始化,否则会报错        int[] array4;        System.out.println(array4);    }

在这里插入图片描述
](https://img-home.csdnimg.cn/images/20220524100510.png#pic_center)

](https://img-home.csdnimg.cn/images/20220524100510.png#pic_center)


点击全文阅读


本文链接:http://zhangshiyu.com/post/163009.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1