java算法递归算法练习-数组之和

简单找个题目练习一下递归算法,输入一组数组,使用递归的方法计算数组之和。其实这个题目,用循环的方式也很简单就能解决,直接循环遍历一下相加就行了,但是我们用来练习一下递归。

先来找基线条件和递归条件

基线条件:当数组下标为0的时候,说明只剩一个值了,直接返回值就行

递归条件:长度大于0的话,就需要相加并递归调用,直到满足基线条件

java 复制代码
package com.dlh.test.算法;

import java.util.Scanner;

public class 递归算法之计算数组之和 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String[] string = sc.nextLine().split(" ");
        int[] array = new int[string.length];
        for (int i = 0; i < string.length; i++) {
            array[i] = Integer.parseInt(string[i]);
        }
        int result = calcnum(array,array.length-1);//此处填入数组最右侧的下标,从右侧开始往左侧以及相加
        System.out.println(result);
    }
    private static int calcnum(int[] array, int i) {
        int result = array[i];
        if (i < 1){//当数组下标小于1的时候,直接返回值
            return array[i];
        }else {
            i--;//数组下标往左移动一位
            result = result + calcnum(array,i);//进行递归调用
        }
        return result;
    }
}
相关推荐
北邮刘老师9 小时前
智能家居,需要的是“主控智能体”而不是“主控节点”
人工智能·算法·机器学习·智能体·智能体互联网
oioihoii9 小时前
C++中有双向映射数据结构吗?Key和Value能否双向查找?
数据结构·c++·算法
nnn__nnn9 小时前
图像分割技术全解析:从传统算法到深度学习的视觉分割革命
深度学习·算法·计算机视觉
后端小张10 小时前
【JAVA 进阶】Spring Boot 注解体系与工程实践
java·开发语言·spring boot·后端·spring·spring cloud·java-ee
9号达人10 小时前
接口设计中的扩展与组合:一次Code Review引发的思考
java·后端·面试
百***628510 小时前
oracle 12c查看执行过的sql及当前正在执行的sql
java·sql·oracle
_OP_CHEN10 小时前
算法基础篇:(八)贪心算法之简单贪心:从直觉到逻辑的实战指南
c++·算法·贪心算法·蓝桥杯·算法竞赛·acm/icpc·简单贪心
键来大师10 小时前
Android15 源码关闭Selinux
android·java·framework·rk3588
合作小小程序员小小店10 小时前
桌面开发,在线%日记本,日历%系统开发,基于eclipse,jdk,java,无数据库
java·数据库·eclipse·jdk
小欣加油10 小时前
leetcode 2536 子矩阵元素加1
数据结构·c++·算法·leetcode·矩阵