当前位置: 首页 > news >正文

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

](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'};//布尔类型默认值为falseboolean[] array2 = new boolean[10];System.out.println(array2[9]);//引用数据类型的默认值为nullString[] 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://www.mrgr.cn/news/28417.html

相关文章:

  • c++ 宏函数 inline 以及区别
  • mac终端使用pytest执行iOS UI自动化测试方法
  • 系统架构师考试18天极限备考复盘(2024年11月)
  • vue项目PC端和移动端实现在线预览docx、excel、pdf文件
  • LFD STM32编程规范20241111
  • 领夹麦克风哪个品牌好,手机领夹麦克风哪个牌子好,选购推荐
  • IAPP发布《2024年人工智能治理实践报告》
  • 算法题解:斐波那契数列(C语言)
  • 15. 三数之和(实际是双指针类型的题目)
  • 支持升降压型、升压、降压、60V的1.2MHz频率LED恒流驱动器LGS63040、LGS63042
  • C/C++实现植物大战僵尸(PVZ)(打地鼠版)
  • 配置cobbler服务提供centos7安装源
  • [OpenCV] 数字图像处理 C++ 学习——15像素重映射(cv::remap) 附完整代码
  • 初中生物--5.单细胞生物
  • 大数据新视界 --大数据大厂之MongoDB与大数据:灵活文档数据库的应用场景
  • 建设世界一流财务管理体系【数字化顶层设计】【持续更新】
  • 大学生看过来,必备4款写论文AI写作网站先稿后付
  • 【AI小项目5】使用 KerasNLP 对 Gemma 模型进行 LoRA 微调
  • 开题报告的流程
  • Go语言开发im-websocket服务和vue3+ts开发类似微信pc即时通讯
  • 背包问题(如何定义dp状态)
  • CSS调整背景
  • 绝缘检测原理
  • C语言代码练习(第二十五天)
  • 拖拽排序的实现示例demo
  • 系统优化工具 | TweakPower v2.0.6 绿色版