递归函数,也就是不断的调用自身的函数,使用递归能够比较方便的解决一些比较难使用循环解决的问题。就在这个例子中,求一个数组a[]的前n项和,也就是求a[n-1]+a[n-2]+…+a[0],那么如果一个函数sum是用来求数组前n项和的,sum定义为sum(int a[],int n),则使用递归的方式就是
a[n-1]+sum(a,n-1)。

使用代码来表述可能更好一些:

#include <stdio.h>int sum(int test[],int n);/*** @brief main 使用递归求一个数组的前n个元素的和* 假设数组为a[];则求其前n的元素的和也就是求* a[n-1]+a[n-2]+...a[0]* @return*/
int main(void)
{int n;printf("Please input the number of an array:\n");scanf("%d",&n);printf("Please enter the element of the array:\n");int test[n];int i;for(i = 0;i < n;i++)scanf("%d",&test[i]);int count = sum(test,n);printf("The sum of the array is : %d.\n",count);return 0;
}/*** @brief sum   实现前n个元素的和* @param test  要求和的数组* @param n     所要求的前n个元素* @return      返回前n个元素的和*/
int sum(int test[],int n){if(n <= 0)return 0;return test[n-1]+sum(test,n-1);
}

下面是我的程序的输出,这个程序比较简单。

转载于:https://www.cnblogs.com/bobo1223/p/7287609.html

C使用递归实现前N个元素的和相关推荐

  1. 递归实现前n项和(两种方法)

    <?php     方法一:     function sum($n){         static $sum = 0;         if($n != 1 ){              ...

  2. php 递归到空如何处理,php递归调用删除数组空值元素的方法

    这篇文章主要介绍了php递归调用删除数组空值元素的方法,涉及php递归调用操作数组的相关技巧,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了php递归调用删除数组空值元素的方法.分享给大家供大 ...

  3. 用定制标签库和配置文件实现对JSP页面元素的访问控制

    用定制标签库和配置文件实现对JSP页面元素的访问控制 控制客户端访问是开发一个基于B/S的架构的系统的开发者必须考虑的问题.JSP或SERVLET规范的基于配置文件的安全策略对资源的控制是以文件为单位 ...

  4. java递归单链表查找中间元素_《数据结构与算法——C语言描述》答案 3.11 查找单链表中的特定元素(递归)...

    转载请注明出处:http://blog.csdn.net/xdz78 #include #include //查找单链表中的特定元素,<数据结构与算法--c语言描述> 3.11 答案 in ...

  5. 递归法:求n个元素的全排列

    问题:求n个元素的全排列 举例:ABC 其全排列有ABC ACB BAC BCA CAB CBA 法一: 采用分割的思想把第一个元素和后面的其他元素分开思考将问题简单化 public class Qu ...

  6. 实验一 分治与递归—用分治法实现元素选择 java算法

     提高题二:用分治法实现元素选择 一.实验要求与目的 1.了解分治法的基本思想,掌握递归程序编写方法: 2.使用分治法编程,求解线形序列中第k小元素. 二.实验内容 1.  给定线形序列集中n个元素和 ...

  7. element Table表格实现前x行恒展示,不会被折叠,设置点击表头按钮排序。

    table表格前X行恒展示不会被折叠. 表头筛选按钮示意图: // data --渲染的数据(每一列每一行),请求回来的. 默认通过字段名和每一个headers对象中每一个prop来对应起来渲染数据的 ...

  8. 【Java】递归法求n个元素的全排列

    public class h {//k表示当前的交换位置.public static void f(char[] data,int k){if(k==data.length){for(int i=0; ...

  9. 以亲身经历浅谈软件实现前“凡事三问”的重要性---欢迎大家分享自己的经历和感悟!

    某老板是非常受欣赏和尊重的人, 某次, 在某会议上, 对某副总说: 为什么我的水平比你高, 因为我善于总结和感悟, 做的事情多了, 所以水平就比较高了. 哈哈, 老板确实有水平, 我也发自内心点个赞. ...

最新文章

  1. XtraReport交叉表自适应行高及最佳列宽(转)
  2. Discuz代码研究-编码规范
  3. 初步认识Volatile-一段代码引发的思考
  4. 【渝粤题库】陕西师范大学180113 学前儿童艺术教育作业
  5. linux java 查找进程中的线程
  6. SpringCloud工作笔记053---SLF4J简介与使用(整合log4j_并切换logging)
  7. matlab 图像分块及恢复
  8. 简述旋转编码器的工作原理_绝对值编码器工作原理以及故障处理方法有哪些?...
  9. jenkins详细入门教程
  10. qt emit是什么意思_2020年12月12日 无赞赏QT吗哪 :如天上的星星永远发光的信仰...
  11. java upperbound_scala类型系统:11) upper bounds lower bounds
  12. 这个Python脚本牛逼了,秒抢红包就算了,还能无视撤回消息
  13. python控制软件自动化测试,资讯详情-用python来使用Airtest 自动化工具-柠檬班-自动化测试-软件测试培训-自学官网...
  14. 自动写字成图5款有趣实用的AIGC工具分享
  15. 【C语言程序设计】C语言三色旗问题!
  16. web服务器性能排名,主流Web服务器性能测试
  17. JS处理时间格式国际标准化的方法
  18. 应试教育与理想教育之间
  19. 【伪科学争议】谷歌研究员两万字批驳上交大用深度学习推断犯罪分子
  20. commvault备份mysql_CommVault备份到华为云对象存储实践

热门文章

  1. 李飞飞新动向:创建斯坦福“以人为本AI研究院”,担任共同院长
  2. 马斯克回应停工事件:Model 3周产量将达6000辆,不开玩笑哦
  3. AI2想从常识测试开始让AI理解物理世界,数据集已公布
  4. 转:浅析C++中的this指针
  5. zabbix的trigger
  6. 解决Intellij IDEA 通过archetype创建Maven项目缓慢的问题
  7. LSJ_NHibernate第一章 NHibernate介绍
  8. 『C#基础』XML文件的读与写
  9. 关于使用yum“The program package-cleanup is...”的解决办法
  10. jbpm与OA项目开发过程实录 (二)