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

news2024/12/24 21:06:23

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

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

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

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

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;
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1965343.html

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

相关文章

Stable Diffusion AI 绘画 之 ControlNet 插件及其对应模型的下载安装

一、介绍 ControlNet: ControlNet是一种通过添加附加条件来控制扩散模型&#xff08;例如Stable Diffusion&#xff09;的神经网络结构。一般的使用方法是结合Stable Diffusion来做到精准控图。 通过上面的方式&#xff0c;ControlNet 可以重用SD编码器作为一个深度&#xff0…

企业版邮箱如何提升效率

企业邮箱是如何提升企业效率的呢&#xff1f;企业版邮箱通过专业形象、安全性、稳定性、集成能力等优势提升效率&#xff0c;支持高效内部沟通、团队协作、客户关系管理、安全性与合规性&#xff0c;并支持远程工作&#xff0c;是企业必备的高效工具。 一、企业版邮箱的基本功…

【通俗理解】神经网络动力学——从梯度下降到拓扑结构的桥梁

【通俗理解】神经网络动力学——从梯度下降到拓扑结构的桥梁 神经网络与动力学的类比 你可以把神经网络看作是一个“城市”&#xff0c;其中的神经元是“居民”&#xff0c;他们通过连接&#xff08;道路&#xff09;交互。而动力学则是一个“交通分析师”&#xff0c;它研究居…

【MySQL】事务 【下】{重点了解读-写 4个记录隐藏列字段 undo log日志 模拟MVCC Read View sel}

文章目录 1.MVCC数据库并发的场景重点了解 读-写4个记录隐藏列字段 2.理解事务undo log日志mysql日志简介 模拟MVCC 3.Read Viewselect lock in share modeMVCC流程RR与RC 1.MVCC MVCC&#xff08;Multi-Version Concurrency Control&#xff0c;多版本并发控制&#xff09;是…

typora简单使用教程

一、下载安装typora Typora是一款流行的Markdown文本编辑器&#xff0c;作者是按照这篇文章完成了typora的下载和安装的&#xff1a;http://t.csdnimg.cn/D2U1U 二、偏好设置 进入界面&#xff0c;点击“文件”&#xff0c;点击“偏好设置”。 三、基本使用 作者是跟着这个…

如何解决 hCaptcha:全面指南

hCaptcha 是一种注重隐私的验证码服务&#xff0c;因其有效性和独特的挑战而广受欢迎。值得注意的是&#xff0c;hCaptcha 具有一定的技术复杂性。本指南将探讨 hCaptcha 的特性&#xff0c;并提供自动化解决方法。 什么是 hCaptcha 及其挑战 hCaptcha 以其基于图像的挑战而闻…

mysql--表的基本操作(curd)

一&#xff0c;表的创建 语法&#xff1a; 如果创建表没有指定字符集存储引擎&#xff0c;默认是继承表所在的数据库的。 修改表的字段 &#xff08;1&#xff09;增加 ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column datatype]...); &#xff08;2&am…

MoE:混合专家模型介绍(一)

MoE&#xff1a;混合专家模型介绍&#xff08;一&#xff09; 本文是对混合专家模型 (MoE) 详解重点摘要与归纳&#xff0c;有兴趣的小伙伴可以点击链接阅读原文。 混合专家模型 (MoEs)特点 与稠密模型相比&#xff0c;预训练速度更快与具有相同参数数量的模型相比&#xff…

Linux之重定向和缓冲区详细解析

个人主页&#xff1a;点我进入主页 专栏分类&#xff1a;C语言初阶 C语言进阶 数据结构初阶 Linux C初阶 算法 C进阶 欢迎大家点赞&#xff0c;评论&#xff0c;收藏。 一起努力&#xff0c;一起奔赴大厂 目录 一.重定向 1.1stat接口 1.1.1利用stat查看文件大小…

添加缓存的相关策略以及缓存的主动更新

目录 添加缓存 代码实现 主动更新缓存 先删缓存在操作数据库 数据一致 数据不一致 先操作数据库在删除缓存 数据一致 数据不一致 总结 添加缓存 代码实现 public Shop queryWithPassThtough(Long id){ //先从redis中查询缓存 String object stringRedisTemplate.opsFor…

《零散知识点 · SpringBoot Starter》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; CSDN入驻不久&#xff0c;希望大家多多支持&#xff0c;后续会继续提升文章质量&#xff0c;绝不滥竽充数…

开放式耳机音质上不如入耳式耳机?高性价比开放式耳机推荐大赏

这可不一定&#xff01; 开放式耳机在音质上并不一定就比传统的入耳式耳机差。 首先&#xff0c;音质的好坏不能仅仅根据耳机的类型来判断。开放式耳机在声音的开放性和自然度方面往往具有优势。它们能够提供更宽广的音场&#xff0c;让声音有一种自然扩散的感觉&#xff0c;使…

『 Linux 』线程同步问题与条件变量

文章目录 同步问题条件变量条件变量的使用条件变量的条件检查与线程唤醒生产者-消费者模型 同步问题 同步问题是保证数据安全的情况下,使多线程在访问同一资源时具有一定顺序性; #define NUM 5int g_val 700;class threadData {public:threadData(const int number, pthread_…

linux常使用的命令

关机命令 shutdown halt poweroff reboot grep 选项 参数 -l 显示所有包含关键字的文件名 -n 在匹配之前加上行号 -c 只显示匹配的行数 -v 显示不匹配的行 管道符 “|” 左边的输出作为右边的输入 例如&#xff1a;我们找个文件包含abc 但是不含有def的文件 grep …

Adobe Acrobat DC 2021版安装教程【超简单、超详细】

Adobe Acrobat DC 是 Adobe 提供的一款专业 PDF 解决方案&#xff0c;具有许多强大的功能&#xff0c;可以满足各种文档处理需求。 注意事项&#xff1a;①下载与激活过程中一定要关闭杀毒软件 ②提供的所有软件都是永久版的 ③软件仅供学习下载使用&#xff0c;不可用于商业用…

C++ 右值 左值引用

一.什么是左值引用 右值引用 1.左值引用 左值是一个表示数据的表达式(如变量名或解引用的指针)&#xff0c;我们可以获取它的地址可以对它赋值。定义时const修饰符后的左值&#xff0c;不能给他赋值&#xff0c;但是可以取它的地址。左值引用就是给左值的引用&#xff0c;给左…

环境如何搭建部署Nacos

这里我使用的是Centos7&#xff0c; Nacos 依赖 Java环境来运行。如果您是从代码开始构建并运行Nacos&#xff0c;还需要为此配置 Maven环境&#xff0c;请确保是在以下版本环境中安装使用 ## 1、下载安装JDK wget https://download.oracle.com/java/17/latest/jdk-17_linux-x6…

知识文库杂志知识文库杂志社知识文库编辑部2024年第12期目录

文艺理论 现代高校书院对中国传统书院学术精神的汲取与转化 李奥楠;时新洁; 1-4 个案工作介入高中美术艺考生及家长心理调适的应用研究 魏星; 5-8《知识文库》投稿&#xff1a;cn7kantougao163.com 中华优秀传统文化视角下高校美育课程实践教学 李丛丛; 9-12 基…

Pytorch GPU环境搭建-博客导航

这里写目录标题 安装安装VS(CUDA需要VS)安装CUDA安装CUDNN创建Pytorch GPU虚拟环境 测试疑难杂症解决链接搭建VGG分类网络并用CUDA训练使用CUDA加速推理分类网络C#使用ONNXruntime-gpu推理 安装 安装VS(CUDA需要VS) 2017&#xff0c;2019&#xff0c;2022都可 安装CUDA Cud…

山东润馨教育专家团队多次举办各种扶贫及公益讲座

一、山东润馨教育专家鲁书婉老师举办了以“发掘孩子的天赋潜能”为主题的公益讲座 在这个充满温情与希望的春日&#xff0c;3月16日&#xff0c;山东润馨教育专家团队带着满满的爱心与智慧&#xff0c;踏入了德州学院附属第一实验小学联合滨河社区&#xff0c;成功举办了一场以…