使用递归实现数组求和示例分享
发布时间:2023-04-24 02:17:40
标签:数组,递归
思路如下:
给定一个含有n个元素的整型数组a,求a中所有元素的和。问题的难点在于如何使用递归上。如果使用递归,则需要考虑如何进行递归执行的开始以及终止条件,首先如果数组元素个数为0,那么和为0。同时,如果数组元素个数为n,那么先求出前n-1个元素之和,再加上a[n-1]即可。此时可以完成递归功能。总之,递归就是在某个函数的执行过程中首先判断它的终止条件参数,终止条件参数满足终止条件则执行完毕,终止条件参数不满足终止条件则调用它自身执行某项运算,比如这里求和就是执行加法。凡是递归一定都有一个参数作为终止条件,比如这里是数组中未加入求和队列的元素个数,初始为数组长度。因为终止条件参数的初始值为数组长度,所以从数组的最后一个元素作为求和队列的第一个元素开始,每递归一次就将数组中的一个元素划归到求和队列中,同时将终止条件参数减1,直到其未为0,标明所有元素都已加入求和队列,返回求和队列的值即可。可见递归至少有两个参数,终止条件参数以及递归对象。
代码如下:
// 1311.cpp : 定义控制台应用程序的入口点。
#include "stdafx.h"
#include<stdio.h>
int GetSum(int *a,int n)
{
return n == 0 ? 0 : GetSum(a,n - 1) + a[n-1];
}
int main()
{
int a[] = { 3, 6, 8, 2, 1 };
int length = sizeof(a) / sizeof(a[0]);
printf("%d\n", GetSum(a, length));
getchar();
return 0;
}


猜你喜欢
- Mybatis所需要的jar包:需要引用两个jar包,一个是mybatis,另一个是MySQL-connector-Java,如果是mave
- 从接收输入值说起在日常的开发应用中,有时候需要直接接收外部设备如键盘等的输入值,而对于这种数据的接收方式,我们一般有三种方法:字节流读取,字
- 1.介绍当系统准备为用户提供一系列相关对象,又不想让用户代码和这些对象形成耦合时,就可以使用抽象工厂模式。2.如何实现1)抽象产品--Car
- 本文实例为大家分享了无限级联下拉列表框的的实现方法,具体内容如下可能有一个树型结构的表,它可能有ID,Name,ParentID,Level
- 前言项目中检测人脸图片是否合法的功能,之前用的是百度的人脸识别接口,由于成本高昂不得不寻求替代方案。什么是opencv?OpenCV是一个基
- tcp客户端示例#include <errno.h> #include <sys/socket.h> #includ
- 一、 结构:值类型,存储在堆栈中,位于计算机的内存逻辑区域中 类 &n
- ArrayList简介:ArrayList实现了List接口它是一个可调整大小的数组可以用来存放各种形式的数据。并提供了包括CRUD在内的多
- 本文实例讲述了C++联合体union用法。分享给大家供大家参考。具体如下:我们应该按照C中的convention去使用union,这是我这篇
- java list,set,map,数组间的相互转换详解1.list转setSet set = new HashSet( new Array
- 委托给了C#操作函数的灵活性,我们可使用委托像操作变量一样来操作函数,其实这个功能并不是C#的首创,早在C++时代就有函数指针这一说法,而在
- 今天发布本文的原因是应一个网友要求,就是实现局部的图片滑动指引效果。这种效果一般是在新闻客户端上比较常见,其功能是:1、顶部单张图片左右拖拉
- 一、Intent的用途Intent主要有以下几种重要用途: 1. 启动Activity:可以将Intent对象传递给startActivit
- 前言这个题目可能取得不大好,想了很久没想出更合适的了。在android开发webview的时候,有的时候后台不一定给的就是一个url,而是把
- 实现思路制作一个用户头像选择器仿 WeGame制作一个用户头像选择Canvas为父控件所实现,展示图片使用Image,Path当作
- 我们就可以结合今天的Annotation Processing Tool(APT)来自定义注解处理器。注解处理器简单解释就是收集我们标记的注
- 本文实例总结了MFC程序设计常用技巧。分享给大家供大家参考。具体如下:1.属性页的添加:创建对话框的类,该类要从CpropertyPage继
- Bean的自动装配自动装配说明自动装配是使用spring满足bean依赖的一种方法spring会在应用上下文中为某个bean寻找其依赖的be
- 一、概述在写代码之前,我必须得问几个问题:1、ViewGroup的职责是啥?ViewGroup相当于一个放置View的容器,并且我们在写布局
- springmvc dao层和service层的区别首先解释面上意思,service是业务层,dao是数据访问层这个问题我曾经也有过,记得以