JavaDay13

本文深入探讨了Java中的递归概念,通过阶乘示例解释了递归头和递归体的重要性,并强调了合理使用递归的必要性。此外,还介绍了数组的基础知识,包括如何声明、创建、初始化和访问数组元素,以及如何计算数组所有元素的和。最后,通过实例展示了如何操作和计算数组的元素总和。
摘要由CSDN通过智能技术生成

Java学习13

递归

A方法调用B方法,易理解

递归就是:A方法调用A方法!就是自己调用自己。

利用递归可以用简单的程序来解决一些复杂的问题。它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量程序就可描述出解题过程所需要的多次重复计算,大大减少了程序的代码量.递归的能力在于用有限的语句来定义对象的无限集合。

递归结构包括两个部分:

  • 递归头:什么时候不调用自身方法。如果没有头,将陷入死循环。
  • 递归体:什么时候需要调用自身方法。

例 (阶层)

//以5的阶层为例
public static void main(String[] args) {
        System.out.println(f(5));
    }

    public static int f(int n) {
        if(n==1){
            return 1;
        }else {
            return n*f(n-1);
        }
    }

结果为:

在这里插入图片描述

解释:

相当于往栈里面堆东西,首先是将5丢到底部,再依次将4、3、2、1丢进去,但丢到1的时候会触底,触底则要反弹,所以便从1开始一次反弹出去,最终得出一个结果来。

在这里插入图片描述

(图片来源:微信公众号“数据结构和算法”)

能不用递归就不用递归

但是递归也有用处,是为基数较小的情况下好用(小计算)

数组的定义

  • 数组是相同类型数据的有序集合。
  • 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。
  • 其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问他们。

数组声明创建

首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法:

dataType[] arrayRefvar; //首选的方法

dataType arrayRefvar[]; //效果相同,但不是首选方法

变量的类型相当于数组类型

变量名字=变量的值

Java语言使用new操作符来创建数组,语法如下:

dataType[] arrayRefvar =new dataType[arraySize];//需要给它赋值一个数组大小

数组的元素是通过索引访问的,数组索引从0开始。

获取数组的长度:arrays.length

例:

int[] nums;//定义
        nums =new int[10];//这里面可以存放10个int类型的数字

在这里插入图片描述

例:计算所有元素的和

int[] nums;//1.声明一个数组

        nums =new int[10];//2.创建一个数组

        //3.给数组元素赋值
        nums[0]=1;
        nums[1]=2;
        nums[2]=3;
        nums[3]=4;
        nums[4]=5;
        nums[5]=6;
        nums[6]=7;
        nums[7]=8;
        nums[8]=9;
        nums[9]=10;

        //计算所有元素的和
        int sum=0;
        //获取数组长度 arrays.Length
        for (int i = 0; i < nums.length; i++) {
            sum=sum+nums[i];
        }
        System.out.println("总和为:"+sum);

结果为:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值