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)


相关推荐

  • mongodb与mysql区别对比

    mongodb与mysql区别对比参考来源mongodb与关系型数据库相比的优缺点与关系型数据库相比,MongoDB的优点:①弱一致性(最终一致),更能保证用户的访问速度:举例来说,在传统的关系型数据库中,一个COUNT类型的操作会锁定数据集,这样可以保证得到“当前”情况下的较精确值。这在某些情况下,例如通过ATM查看账户信息的时候很重要,但对于Wordnik来说,数据是不断更新和增长的,这种“较精确”的保证几乎没有任何…

  • 2022年1月 idea最新激活码[最新免费获取]

    (2022年1月 idea最新激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.cn/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~4K…

  • 静态局部变量和静态全程变量static。

    静态局部变量和静态全程变量static。1.什么是static?static是C/C++中很常用的修饰符,它被用来控制变量的存储方式和可见性。1.1static的引入我们知道在函数内部定义的变量,当程序执行到它的定义处时,编译器为它在栈上分配空间,函数在栈上分配的空间在此函数执行结束时会释放掉,这样就产生了一个问题:如果想将函数中此变量的值保存至下一次调用时,如何实现?最容易想到的方法是定义为全局的变量,但定…

  • 梯度散度旋度哈密顿量公式「建议收藏」

    梯度散度旋度哈密顿量公式「建议收藏」梯度散度旋度哈密顿量公式

  • pinetwork节点教程_搭建ss教程

    pinetwork节点教程_搭建ss教程文章目录1、简介2、Pi节点安装2.1、操作系统2.2、路由器设置2.3、Docker安装2.4、PiNode安装1、简介    2020年3月31日(太平洋时间)Node软件的测试版上线此,版本号0.015。写下这篇文章时,版本号已更新至0.3.8。Pi节点的安装设置过程稍复杂,在此做个总结。2、Pi节点安装2.1、操作系统2.2、路由器设置2.3、Docker安装2.4、PiNode安装…

  • 【mybatis系列】自定义实现拦截器插件Interceptor

    【mybatis系列】自定义实现拦截器插件Interceptor目录类型规则介绍intercept(Invocationinvocation)plugin(Objecttarget)setProperties(Propertiesproperties)实战首先熟悉一下Mybatis的执行过程,如下图:拦截器应用场景:类型先说明Mybatis中可以被拦截的类型具体有以下四种:1.Executor:拦截执行器的方法。2.ParameterHandler:拦截参数的处理。3.ResultHandler:拦截结果集的处理。4.StatementHandl

    2022年10月25日

发表回复

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

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