首页 > 编程语言 >算法:递归数组求和

算法:递归数组求和

时间:2024-07-05 12:32:04浏览次数:15  
标签:index return 数组 递归 求和 int 算法 func array

递归数组求和

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

算法思想:

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

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实现:
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;
}

标签:index,return,数组,递归,求和,int,算法,func,array
From: https://blog.csdn.net/weixin_44144773/article/details/140205059

相关文章

  • 测量并打印出被装饰函数的执行时间,优化递归函数
    定义了一个装饰器timer,它测量并打印出被装饰函数的执行时间。这个装饰器使用了Python的time模块来记录函数开始和结束的时间点,然后计算并输出函数的运行时长。使用@timer语法将这个装饰器应用到了fibonacci函数上,这是一个递归实现的斐波那契数列计算函数。当调用fibonacci(10)......
  • 代码随想录算法训练营第十三天|今天量大管饱144、145、94、102、107、199、637、429、
    今天来处理二叉树part1、2、3,顶级享受,一次到位。完全二叉树和满二叉树概念没问题。二叉搜索树,左子树所有结点的值小于它的根结点的值,右子树上所有结点的值大于它的根结点的值平衡二叉搜索树,它是一棵空树或它的左右两个子树的高度差的绝对值不超过1。二叉树的存储方式:链式存储......
  • 「代码随想录算法训练营」第三天 | 链表 part1
    203.移除链表元素题目链接:https://leetcode.cn/problems/remove-linked-list-elements/题目难度:简单文章讲解:https://programmercarl.com/0203.移除链表元素.html视频讲解:https://www.bilibili.com/video/BV18B4y1s7R9题目状态:通过个人思路:从链表头部开始依次往下遍历,当......
  • 算法学习笔记(24):卡常小技巧
    卡常学习来源->https://platelet.top/hpc/oldst表访问连续性就不说了,考虑计算log2。预处理比31^builtin__clz(x)慢,而且慢很多。setinsert(pos,x)如果\(pos\)是\(x\)在set中正确的位置,那么insert是\(O(1)\)的。erase(it)是\(O(1)\)的。prev(it)......
  • 智能分析网关V4人员区域徘徊AI检测:算法原理介绍及技术应用场景
    一、引言在现代社会,随着科技的不断发展,视频监控系统已广泛应用于各个领域,如公共安全、商业管理、交通监控等。其中,区域徘徊检测算法作为一种重要的视频分析技术,能够有效地识别出特定区域内人员的徘徊行为,为安全管理和事件预防提供了有力支持。本文将以TSINGSEE青犀AI智能分析网关......
  • 人员跌倒识别检测算法
    人员跌倒识别检测算法是基于视频的检测方法,通过对目标人体监测,当目标人体出现突然倒地行为时,自动监测并触发报警。人员跌倒识别检测算法基于计算机识别技术,配合现场摄像头,自动识别如地铁手扶梯/楼梯、老幼活动区等公共场所人员摔倒行为,准确率高于90%,及时救援,提高人工监管效果,保障......
  • 安全帽佩戴检测算法
    安全帽佩戴检测算法是铁路工程施工人员安全管理中的重点和难点,它对检测算法的准确率与检测速度都有较高的要求。本文提出一种基于神经网络架构搜索的安全帽佩戴检测算法NAS-YOLO。该神经网络架构由上、下行操作单元组成,采用二进制门策略对网络架构进行更新,通过数据驱动的方式自......
  • 雪花算法
    雪花算法1.1概述雪花算法是twitter开源的一个分布式id的生成算法。雪花id,是分布式计算中使用的唯一标识符的一种形式。该格式由twitter创建。人们普遍认为,每片雪花都有唯一的结构,因此他们取了“雪花ID”这个名字。1.2什么是雪花id雪花id是有一种分布式id算法生成的,他的设计......
  • 代码随想录算法训练营第五十天 | 1143.最长公共子序列 392.判断子序列
    1143.最长公共子序列题目链接文章讲解视频讲解dp[i][j]:表示以text1以i-1为结尾text2以j-1为结尾的最长公共子序列为dp[i][j]递推公式:如果text1[i-1]==text2[j-1]那么dp[i][j]=dp[i-1][j-1]+1;  如果不相同的话,那么dp[i][j]=max(dp[i-1][j],dp[i][j-1]);cl......
  • L1-009 N个数求和 python
    python实现:需要考虑很多情况:如果只输入一个数:分子/分母是否有商,是否需要约分,如:8/3,-8/3,0/3。如果输入多个数:通分后分子>0,<0还是=0,分子/分母是否有商,是否需要约分。num=int(input())s=input()ifnum==1:fenzi=int(s.split("/")[0])fenmu=int(s.split("/")[1])......