算法:递归数组求和

news/2024/7/8 10:47:20 标签: 算法, 学习, python, java, c++, 递归, 数组

递归数组求和

给定一个数组,求所有元素的和

算法思想:

传入数组和下标,如果下标越界就返回0,否则返回当前值和下一个值的和,递归操作。

Java实现:
java">public class Main {
	public static int func(int[] array, int index) {
		if (index > array.length - 1) {
			return 0;
		} else {
			return array[index] + func(array, index + 1);
		}
	}
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int[] array = new int[10];
        for (int i = 0; i < array.length; i++) {
			array[i] = new Random().nextInt(100);
		}
        System.out.println(func(array, 0));
        sc.close();
    }
}
Python实现:
python">import random

def func(array, index):
    if index > len(array) - 1:
        return 0
    else:
        return array[index] + func(array, index + 1)
if __name__ == '__main__':
    # 生成一个随机数列表
    array = [random.randint(0, 100) for i in range(10)]
    print(func(array, 0))
C++实现:
#include <iostream>
using namespace std;

int func(int *array, int index, int arraySize){
  if (index > arraySize - 1) {
    return 0;
  } else {
    return array[index] + func(array, index + 1, arraySize);
  }
}

int main() {
  // 定义数组
  int array[10];
  // 生成随机数
  for(int i = 0; i < 10; i++){
    array[i] = rand() % 200;
    }
  // 计算数组大小
  int arraySize = sizeof(array) / sizeof(array[0]);
  // 递归调用并输出
  cout<<func(array, 0, arraySize)<<endl;
}

http://www.niftyadmin.cn/n/5537046.html

相关文章

adobe pdf设置默认打开是滚动而不是单页视图

上班公司用adobe pdf&#xff0c;自己还不能安装其它软件。 每次打开pdf&#xff0c;总是默认单页视图&#xff0c;修改滚动后&#xff0c;下次打开又 一样&#xff0c;有时候比较烦。 后面打开编辑->首选项&#xff0c; 如下修改&#xff0c;下次打开就是默认滚动了

Python: 分块读取文本文件

在处理大文件时&#xff0c;逐行或分块读取文件是很常见的需求。下面是几种常见的方法&#xff0c;用于在 Python 中分块读取文本文件&#xff1a; 1、问题背景 如何分块读取一个较大的文本文件&#xff0c;并提取出特定的信息&#xff1f; 问题描述: fopen(blank.txt,r) quot…

centos7的yum命令无法使用解决方案

文章目录 问题排查流程解决方案总结 问题 今天新建了个centos7的虚拟机发现yum无法正常使用 已加载插件&#xff1a;fastestmirror Determining fastest mirrors Could not retrieve mirrorlist http://mirrorlist.centos.org/?release7&archx86_64&repoos&infra…

7.1作业6

uart4.h #ifndef __UART4_H__ #define __UART4_H__ #include "stm32mp1xx_gpio.h" #include "stm32mp1xx_rcc.h" #include "stm32mp1xx_uart.h" //rcc/gpio/uart4初始化 void hal_uart4_init(); //发送一个字符 void hal_put_char(const char s…

[Go 微服务] Kratos 使用的简单总结

文章目录 1.Kratos 简介2.传输协议3.日志4.错误处理5.配置管理6.wire 1.Kratos 简介 Kratos并不绑定于特定的基础设施&#xff0c;不限定于某种注册中心&#xff0c;或数据库ORM等&#xff0c;所以您可以十分轻松地将任意库集成进项目里&#xff0c;与Kratos共同运作。 API -&…

ETCD 基本介绍与常见命令的使用

转载请标明出处&#xff1a;https://blog.csdn.net/donkor_/article/details/140171610 文章目录 一、基本介绍1.1 参考1.2 什么是ETCD1.3 ETCD的特点1.4 ETCD的主要功能1.5 ETCD的整体架构1.6 什么时候用ETCD&#xff0c;什么时候用redis 二、安装三、使用3.1 etcdctl3.2 常用…

k8s-第八节-Helm

Helm & 命名空间 介绍 Helm类似 npm,pip,docker hub, 可以理解为是一个软件库,可以方便快速的为我们的集群安装一些第三方软件。使用 Helm 我们可以非常方便的就搭建出来 MongoDB / MySQL 副本集群,YAML 文件别人都给我们写好了,直接使用。官网 https://helm.sh/zh/ …

Vue2中跨组件共享公共属性的方法、优缺点与实现

一、vuex&#xff08;最常用&#xff09; 优缺点 优点&#xff1a;集中管理状态&#xff0c;组件间解耦&#xff0c;易于调试和测试。缺点&#xff1a;学习成本较高&#xff0c;对于小项目可能过于复杂。 适用场景 大型、复杂的单页面应用&#xff08;SPA&#xff09;。需要全局…