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;
    }
}
相关推荐
秋风战士几秒前
无线通信算法之340:信道均衡除法定标讨论
算法·fpga开发·信息与通信
虫小宝2 分钟前
淘宝返利软件的日志审计系统:Java Logback+ELK Stack实现操作日志的可追溯与可视化分析
java·elk·logback
沧澜sincerely3 分钟前
蓝桥杯算法练习
算法·职场和发展·蓝桥杯
铁蛋AI编程实战3 分钟前
Falcon-H1-Tiny 微型 LLM 部署指南:100M 参数也能做复杂推理,树莓派 / 手机都能跑
java·人工智能·python·智能手机
yangminlei4 分钟前
Spring Boot 4.0.1新特性概览
java·spring boot
一起养小猫6 分钟前
Flutter for OpenHarmony 进阶:手势识别与碰撞检测算法深度解析
算法·flutter·harmonyos
Herbert_hwt8 分钟前
数据结构与算法绪论:为何学、学什么、如何避坑
c语言·数据结构·算法
XX風8 分钟前
1-3-kernel PCA
算法
C+-C资深大佬9 分钟前
C++多态
java·jvm·c++
WJX_KOI9 分钟前
保姆级教程:Apache Seatunnel CDC(standalone 模式)部署 MySQL CDC、PostgreSQL CDC 及使用方法
java·大数据·mysql·postgresql·big data·etl