c语言递归求组合数_c语言求一维数组元素之和

c语言递归求组合数_c语言求一维数组元素之和C语言递归实现数组求和一.基本思想(分而治之):1.基线条件:显然最简单的情况:数组只有一个数时,无需任何操作,直接返回其值即可;所以基线条件为数组长度为1;2.递归条件:每一次加上数组最后一位并缩短数组长度以丢掉它;二.问题及解决1.数组的输入问题:怎么实现让自己输入自己想求得的数组的和,而不是只能求固定数组。解:利用c99变长数组,自己输入数组长度和具体数字;(缺陷:需要用户…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

C语言递归实现数组求和

一.基本思想(分而治之):

  1. 基线条件:
    显然最简单的情况:数组只有一个数时,无需任何操作,直接返回其值即可;
    所以基线条件为数组长度为1;
  2. 递归条件:
    每一次加上数组最后一位并缩短数组长度以丢掉它;

二.问题及解决

  1. 数组的输入问题:怎么实现让自己输入自己想求得的数组的和,而不是只能求固定数组。
    解:利用c99变长数组,自己输入数组长度和具体数字;(缺陷:需要用户数自己数字的长度,未解决)
  2. 递归的条件中,每一次应该在上一次调用的基础上减一,最好定义新的变量,避免此问题;
#include <stdio.h>
int sum(int a[],int len);
int main()
{
	int i,len;
	printf("Enter the len:");
	scanf("%d",&len);//利用变长数组,先输入求和数组的长度

	int a[len];
	printf("Enter the number:");
	for(i=0;i<len;i++){
		scanf("%d",&a[i]);
    }//输入数组的具体数字
	
	int sumall;	
	sumall=sum(a,len);
	printf("the sum of your number is %d",sumall);//求和并输出
}
int sum(int a[],int len)
{
	if(len==1)//基线条件
	return a[len-1];
	else{
	int n=len-1	;
	return a[n]+sum(a,len-1);//用n替换len-1;避免a[len-1]后误以为应该是+sum(a,len-2);递归调用,传入参数每次改变1;
    }
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/186735.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 缺陷报告-模板_质量缺陷报告

    缺陷报告-模板_质量缺陷报告1.定义概述:标识并描述发现的缺陷,具有清晰、完整和可重现问题所需的信息的文档。理解:测试人员发现缺陷,将缺陷记录在《缺陷报告》中,通过缺陷报告将缺陷告知给开发人员,并对缺陷进行跟踪和管理。缺陷报告是测试人员与开发人员之间重要的沟通方式。2.什么是缺陷软件缺陷就是通常说的Bug,它是指在软件中(包括文档和程序)存在的影响软件正常运行的问题。软件未达到产品说明书标明的功能,如一个即时通讯App不能聊天。 软件出现了产品说明书指明不会出现的错误,如高考不带身份证。 软件功能超出产品说明书指明

  • 智能称体脂称实现(基本原理解释篇)[通俗易懂]

    (本文均出于个人理解而写,仅用于学习和交流,某些过程可能不一定正确,希望各位提出意见进行交流,共同进步)项目简介前段时间接触到一个项目,类似于现在网上热卖的那种智能称,如下图所示

  • 【机器学习】一文读懂正则化与LASSO回归,Ridge回归

    【机器学习】一文读懂正则化与LASSO回归,Ridge回归该文已经收录到专题机器学习进阶之路当中,欢迎大家关注。1.过拟合当样本特征很多,样本数相对较少时,模型容易陷入过拟合。为了缓解过拟合问题,有两种方法:方法一:减少特征数量(人工选择重要特征来保留,会丢弃部分信息)。方法二:正则化(减少特征参数的数量级)。2.正则化(Regularization)正则化是结构风险(损失函数+正则化项)最小化策略的体…

  • openwrt 修正heartbleed bug 补丁

    openwrt 修正heartbleed bug 补丁heartbleedbug的主要原因是由于cache的过度读取

  • 民谣歌词基本格式_歌词创作

    民谣歌词基本格式_歌词创作把LRC格式的歌词解析成一个JS对象,适用于大部分书写比较规范的LRC格式的歌词。

    2022年10月23日
  • 【安卓笔记】高速的发展设置界面—–PreferenceActivity

    【安卓笔记】高速的发展设置界面—–PreferenceActivity

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号