使用递归实现数组求和示例分享
时间: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;
}
标签:数组,递归
0
投稿
猜你喜欢
win7配置adb环境变量的方法步骤
2022-11-10 16:45:12
c#实现多线程局域网聊天系统
2022-12-01 23:34:25
C#实现导入CSV文件到Excel工作簿的方法
2022-09-13 12:24:02
浅析SpringCloud Alibaba-Nacos 作为注册中心示例代码
2022-12-04 14:24:00
Spring Boot应用监控的实战教程
2022-03-02 18:17:09
Flutter之Timer实现短信验证码获取60s倒计时功能的代码
2023-07-20 20:00:30
关于springboot2整合lettuce启动卡住问题的解决方法
2022-08-24 09:29:16
详解kotlin中::双冒号的使用
2022-09-04 10:17:23
C# 开发(创蓝253)手机短信验证码接口的实例
2023-05-22 11:15:54
C#知识整理
2021-08-02 18:24:26
java数组元素的引用实例讲解
2023-12-02 16:40:32
java 对象输入输出流读写文件的操作实例
2021-06-13 15:24:30
Springboot集成JUnit5优雅进行单元测试的示例
2021-09-24 07:49:58
Android List(集合)中的对象以某一个字段排序案例
2021-10-07 03:28:39
IDEA将Maven项目中指定文件夹下的xml等文件编译进classes的方法
2023-05-07 07:34:50
java注解结合aspectj AOP进行日志打印的操作
2023-10-23 14:02:53
提示信息控件AlertDialog对话框详解
2022-04-18 22:20:45
Java根据模板导出Excel报表并复制模板生成多个Sheet页
2022-09-09 01:16:01
Mybatis批量插入更新xml方式和注解方式的方法实例
2022-06-17 18:09:09
C#应用ToolStrip控件使用方法
2023-05-23 09:10:18