递归对一个数组求和

var arr = [1,3,2,7,5,9,11];

function sum(arr){
  var total = 0;

  var fun = function(arrs){
    if(arrs.length > 0){
      total += arrs.pop();
      fun(arrs);
    }
}

  fun(arr);

  return total;
}

时间: 2024-12-07 08:38:05

递归对一个数组求和的相关文章

c++ 递归入门 阶乘/数组求和

阶乘 int factorial(int num) { if (num == 1) { return 1; } return num * factorial(num - 1); } 数组求和 int arraySum(int* arr, int length, int index) { if (index == length) { return 0; } return arr[index] + arraySum(arr, length, index + 1); } 原文地址:https://ww

使用递归实现一个数组的快速排序

快速排序思想,整个排序过程只需3步: 1.找一个基准点. 2.建立两个数组,分别放在左右两边. 3.利用递归,进行下一次的比较. function sortarr(arr){ //instanceof Array判断 取反的arr是否是数组 if(!arr instanceof Array){ return; } //判断arr的个数是否小于1 if(arr<=1){ return arr; } // 获取中间数的下标 var num =Math.floor(arr.length/2); //

求一个数组的子数组的最大和

如题:求一个数组的子数组的最大和,要求O(n)时间复杂度. 由于有了O(n)时间复杂度的限制,所以暴力求解的O(n^2)方法肯定不行.再考虑递归求一个数组a[n]的子数组的最大和,可以分解为a[i]子数组的最大和以及a[n-i-1]之间的某种情况 a[n]的子数组最大和等于a[i]子数组的最大和: a[n]的子数组最大和等于a[n-i-1]: a[n]的子数组最大和跨a[i]和a[n-i-1]: 递归实现的时间复杂度为O(nlg(n)).最后考虑时间复杂度为O(n)的动态规划实现. /** *

递归实现数组求和

#include<stdio.h> int sum(int* a, int n) { return (0 == n)?0:(sum(a,n-1) + a[n-1]); } void sum1(int* a, int n,int& s) { if(0 == n) return; else { s = s + a[n-1]; sum1(a,n-1,s); } } ///用return方案的话,就是先可以递归最底层,然后再从最底层开始计算回来,从下层向上层传数据 ///如果使用形参的话,在递

如何递归实现数组求和

如何用递归实现数组求和 给定一个含有n个元素的整形数组a,求a中所有元素的和. 非递归算法: int sumr(int *a,int n) { int sum=0; for(int i=0;i<n;i++) sum+=a[i]; return sum; } 递归算法: int sum(int *a,int n) { return n==0?0:sum(a,n-1)+a[n-1]; } 递归实现的方法,如果数组元素个数为0,那么和为0,如果元素个数为n,那么先求出前n-1个元素的和,再加上a[n-

Java生成10个随机数,填充一个数组,用消息框显示数组内容,后求和输出

Java随机生成10个数,填充一个数组,然后用消息框显示数组内容,接着计算数组元素的和,将结果也显示在消息框中. 设计思路: 可以先用Math.Random()*1000生成1000以内随机数,然后依次存入数组中,然后读取数组,输出随机数,同时进行加法计算,最后将所有结果以消 息框形式输出. 程序流程图: 源代码: package 随机数求和; import javax.swing.*; public class Sum { public static void main(String args

每天一个JavaScript实例-递归实现反转数组字符串

<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>每天一个JavaScript实例-递归实现反转数组字符串</title> <script> var func = function(x,indx,str){ return

PHP递归方式把一个数组里面的null转换为空字符串”的方法

在一些接口的调用中,直接查询数据库出来的字段可能为null字段,但是为了简便前端的判断,需要把null转换成空字符串'',这个时候就需要递归的方式进行.直接上代码如下: //递归方式把数组或字符串 null转换为空''字符串 public function _unsetNull($arr){ if($arr !== null){ if(is_array($arr)){ if(!empty($arr)){ foreach($arr as $key => $value){ if($value ===

CUDA学习:第一CUDA代码:数组求和

今天有些收获了,成功运行了数组求和代码:就是将N个数相加求和 //环境:CUDA5.0,vs2010 #include "cuda_runtime.h"#include "device_launch_parameters.h" #include <stdio.h> cudaError_t addWithCuda(int *c, int *a); #define TOTALN 72120#define BLOCKS_PerGrid 32#define TH