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;
    }
}
相关推荐
2401_841495641 天前
并行程序设计与实现
c++·python·算法·cuda·mpi·并行计算·openmp
invicinble1 天前
java集合类(二)--map
java·开发语言·python
算法与编程之美1 天前
不同的优化器对分类精度的影响以及损失函数对分类精度的影响.
人工智能·算法·机器学习·分类·数据挖掘
sali-tec1 天前
C# 基于halcon的视觉工作流-章71 深度学习-预处理OCR
开发语言·人工智能·深度学习·数码相机·算法·计算机视觉·ocr
rannn_1111 天前
【SQL题解】力扣高频 SQL 50题|DAY4
数据库·后端·sql·leetcode·题解
咕噜企业分发小米1 天前
腾讯云知识图谱实体链接的准确率如何评估?
人工智能·算法·机器学习
Mr-Wanter1 天前
搭建局域网时间同步服务器
java·运维·服务器
代码笔耕1 天前
我们这样设计消息中心,解决了业务反复折腾的顽疾
java·后端·架构
MicroTech20251 天前
MLGO微算法科技发布改进量子ODE算法,支持不可对角化矩阵与非齐次系统实现指数级误差优化
科技·算法·矩阵
U-52184F691 天前
CGAL 实战笔记:深入理解 2D 符合三角剖分与网格生成 (针对 CAM 开发)
笔记·算法