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

CSDN 2024-10-05 13:05:02 阅读 75

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

🌈个人主页: Aileen_0v0

🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法

💫个人格言:“没有罗马,那就自己创造罗马~”

文章目录

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

<code>递归

自己调用自己

StackOverflowError:栈溢出错误,出现的原因可能是以下情况:

(1)结束条件不对

(2)结束条件没有


<code>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);

}

}

在这里插入图片描述


<code>利用递归求斐波那契数列

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");

}

在这里插入图片描述

<code>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)



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。