【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.xdnf.cn/news/1536725.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

AR技术在电商行业中有哪些应用场景?有何优势?

AR&#xff08;增强现实&#xff09;技术在电商行业中的应用场景广泛且多样&#xff0c;为消费者带来了全新的购物体验&#xff0c;同时也为商家提供了诸多优势。51建模网为电商行业AR技术应用提供解决方案&#xff0c;以下是AR技术在电商行业中的主要应用场景及其优势&#xf…

PhotoZoom Pro / Classic 9.0.2激活版安装激活图文教程

图像格式中&#xff0c;位图格式的图像是由点阵像素组成的数据文件&#xff0c;所以呢在把位图图像放大的时候&#xff0c;就会发现看到它是由于许多点构成&#xff0c;这就是为什么数码照片在使用普通的工具放大时会失真的原因。不过呢由于一些日常需求&#xff0c;我们经常需…

TalkSphere项目介绍

TalkSphere项目介绍 文章目录 TalkSphere项目介绍一、前言二、技术栈及开发环境三、主要功能&#xff08;一&#xff09;用户登录与注册&#xff08;二&#xff09;用户历史消息展示&#xff08;三&#xff09;在线用户实时聊天 四、结语 一、前言 在线聊天室作为一个虚拟社交…

关于安卓App自动化的一些想法

安卓App自动化一般使用PythonAppium。页面元素通常是使用AndroidStudio中的UI Automator Viewer工具来进行页面元素的追踪。但是这里涉及到一个问题就是&#xff0c;安卓apk在每次打包的时候&#xff0c;会进行页面的混淆以及加固&#xff0c;所以导致每次apk打包之后会出现页面…

猫头虎分享:Python库 PyMongo 的简介、安装、用法详解入门教程

&#x1f42f;猫头虎分享&#xff1a;Python库 PyMongo 的简介、安装、用法详解入门教程 今天有粉丝问猫哥&#xff1a;MongoDB如何与Python连接&#xff1f; 我第一时间就想到了一个简单又强大的解决方案——PyMongo&#xff01;这个库帮助我们在 Python 中高效地与 MongoDB 进…

20240916 每日AI必读资讯

超强o1模型智商已超120&#xff01;1小时写出NASA博士1年代码&#xff0c;最新编程赛超越99.8%选手 - 一位UCI物理学博士实测o1&#xff0c;发现自己用时1年完成的博士论文代码&#xff0c;竟被AI在1个小时之内实现了。 - o1在最新门萨智商测试中&#xff0c;IQ水平竟超过了1…

揭开谜底:用 C 语言打造你的扫雷游戏!

目录 1. 功能概述 用户界面 2. 游戏分析与设计 2.1 数据结构分析 地雷存储&#xff1a; 玩家视图&#xff1a; 2.2 文件结构设计 3. 代码实现 game.h game.c test.c 亮点功能与创新 智慧的较量&#xff1a;核心游戏循环 进阶功能&#xff1a;让游戏更加与众不同 还…

MySQL 中的 GROUP BY 和 HAVING 子句:特性、用法与注意事项

在 MySQL 数据库的查询操作中&#xff0c;GROUP BY 和 HAVING 子句是非常强大的工具&#xff0c;它们能够帮助我们对数据进行分组和筛选&#xff0c;从而更好地分析和处理数据。今天&#xff0c;我们就来深入了解一下 GROUP BY 和 HAVING 子句的特性、用法及注意事项。 一、GR…

二叉树OJ题——另一棵树的子树

文章目录 一、题目链接二、解题思路三、解题代码 一、题目链接 另一棵树的子树 题目描述&#xff1a;判断当前树A是否是树B的子树。 二、解题思路 时间复杂度&#xff1a;O(n*m) 三、解题代码

深度学习之微积分预备知识点

极限&#xff08;Limit&#xff09; 定义&#xff1a;表示某一点处函数趋近于某一特定值的过程&#xff0c;一般记为 极限是一种变化状态的描述&#xff0c;核心思想是无限靠近而永远不能到达 公式&#xff1a; 表示 x 趋向 a 时 f(x) 的极限。 知识点口诀解释极限的存在左…

文件误删除后的数据救援实战指南

在数字化时代&#xff0c;文件误删除成为了许多用户心头挥之不去的阴影。无论是手误点击了“删除”键&#xff0c;还是系统崩溃导致的数据丢失&#xff0c;文件一旦从我们的视线中消失&#xff0c;往往伴随着重要信息的流失和工作的中断。本文将深入探讨文件误删除的现象&#…

数据中台建设(六)—— 数据资产管理

数据资产管理 随着企业数据越来越大&#xff0c;企业意识到数据是一种无形的资产&#xff0c;通过对企业各业务线产生的海量数据进行合理管理和有效应用&#xff0c;能盘活并充分释放数据的巨大价值。如果不能对海量数据进行有效管理和应用&#xff0c;企业堆积如山的数据给企…

使用 release key 对 LineageOS 进行编译和签名

版权归作者所有&#xff0c;如有转发&#xff0c;请注明文章出处&#xff1a;https://cyrus-studio.github.io/blog/ 为什么需要使用 release key test-key 是一个公开的、众所周知的开发测试密钥&#xff0c;广泛用于测试阶段。这意味着任何人都可以获取这个密钥&#xff0c;…

R语言学习全攻略:从入门到精通的详细指南

目录 一、引言 1. R语言的背景和发展 2. 学习R语言的意义 二、R语言的核心特性 1. 开源和跨平台 2. 专业的统计分析功能 3. 强大的数据可视化能力 4. 丰富的扩展包 三、R语言基础语法 1. 基本数据类型 2. 数据结构 向量&#xff08;Vector&#xff09; 矩阵&#x…

Vue.js魔法书:前端开发者的终极指南

个人名片&#xff1a;&#x1f60a;作者简介&#xff1a;一个为了让更多人看见许舒雅的宝贝的小白先生 &#x1f921;个人主页&#xff1a;许舒雅的宝贝 &#x1f43c;座右铭&#xff1a;深夜两点半的夜灯依旧闪烁&#xff0c;凌晨四点的闹钟不止你一个。 &#x1f385;学习目标…

UML 类图(提供 Java 实现)

文章目录 UML 类图概述及作用类图表示法类&#xff08;接口&#xff09;的表示类与类之间关系的表示关联关系&#xff08;Association&#xff09;单向关联&#xff08;Unidirectional Association&#xff09;双向关联&#xff08;Bidirectional Association&#xff09;自关联…

Acwing 栈

1.数组模拟栈 主要思想&#xff1a;先进后出&#xff0c;设置一个数组存储数据&#xff0c;一个栈顶指针指向栈顶&#xff08;初始化为0&#xff09; 注意&#xff1a;数据出栈&#xff0c;只需将指针单纯前移&#xff0c;无需在意数组还存储数据造成浪费。 下面是需要背过的…

Linux部署Servlet代码

文章目录 一、为何要部署网站二、如何部署2.1 准备Java web的环境如何安装 为什么要准备环境安装JDK安装Tomcat 并启动Tomcat&#xff1a;安装Mysql 2.2 在云服务器上部署网站 其他查看Tomcat日志访问Tomcat的欢迎页面访问MariaDB 一、为何要部署网站 我们做出的网站是希望这…

2024永久激活版 Studio One 6 Pro for mac 音乐创作编辑软件 完美兼容

Studio One 6是一款功能强大的音乐制作软件&#xff0c;由PreSonus公司开发。它提供了全面的音频录制、编辑、混音和母带处理工具&#xff0c;适用于音乐制作人、音频工程师和创作人员。 Studio One 6拥有直观的用户界面&#xff0c;使用户能够快速而流畅地进行音乐创作。它采…

谷粒商城のElasticsearch

文章目录 前言一、前置知识1、Elasticsearch 的结构2、倒排索引 (Inverted Index)2.1、 索引阶段2.2、查询阶段 二、环境准备1、安装Es2、安装Kibana3、安装 ik 分词器 三、项目整合1、引入依赖2、整合业务2.1、创建索引、文档、构建查询语句2.2、整合业务代码 后记 前言 本篇介…