精华内容
下载资源
问答
  • c语言递归求和

    2020-03-04 19:19:00
    递归的方法求和 求和1+2+3+…+n Sum(n):1+2+3+…+n; Sum(n-1):1+2+3+…+(n-1); Sum(n) = Sum(n-1)+n #include<stdio.h> int Sum(int n) { if(n == 0 || n ==1 ) return 0; else return Sum(n-1)+n; } int ...

    用递归的方法求和
    求和1+2+3+…+n
    Sum(n):1+2+3+…+n;
    Sum(n-1):1+2+3+…+(n-1);
    Sum(n) = Sum(n-1)+n

    #include<stdio.h>
    int Sum(int n)
    {
    if(n == 0 || n ==1 )
    return 0;
    else
    return Sum(n-1)+n;
    }
    int main()
    {
    printf("%d\n",Sum(100));
    }

    展开全文
  • C语言递归实现数组求和

    千次阅读 2019-11-14 23:25:57
    C语言递归实现数组求和 一.基本思想(分而治之): 1.基线条件: 显然最简单的情况:数组只有一个数时,无需任何操作,直接返回其值即可; 所以基线条件为数组长度为1; 2.递归条件: 每一次加上数组最后一位并缩短...

    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;
        }
    }
    
    展开全文
  • C语言递归求和(答案原创)

    千次阅读 2019-03-20 21:29:48
    递归方法计算如下求和计算 sum = 1 + 2 + 3 + … + n 递归函数原型:int Sum(int n); 程序运行结果示例1: Please input n:5↙ sum=15 程序运行结果示例2: Please input n:0↙ data error! 程序运行结果示例3: ...

    题目内容:

    用递归方法计算如下求和计算

    sum = 1 + 2 + 3 + … + n

    递归函数原型:int Sum(int n);

    程序运行结果示例1:

    Please input n:5↙

    sum=15

    程序运行结果示例2:

    Please input n:0↙

    data error!

    程序运行结果示例3:

    Please input n:-3↙

    data error!

    输入提示信息:“Please input n:”

    输入错误提示信息:“data error!\n”

    输入格式:"%d"

    输出格式:“sum=%d\n”

    #include <stdio.h>
    #include <stdlib.h>
    int Sum(int n);
    
    int Sum(int n)
    {
    	if (n==1)
    		return 1;
    	else
    		return n+Sum(n-1);
    }
    int main()
    {	int n;
    	printf("Please input n:");
        scanf("%d",&n);
        if (n>=1)
    		printf("sum=%d\n",Sum(n));
        else
    		printf("data error!\n");
    	system("pause");
    	return 0;
    }
    
    
    展开全文
  • //递归函数,正整数列 int f1(int n) //n 取n的值 { if( n == 1) { return 1; } return f1(n - 1) + 1; //1 2 3 4 5 6 7 8 9 } //递归函数,奇数数列 int f2(int n) //n 取n的值 { if( n == 1) { ...
    #include<stdio.h> 
    int main(void)
    {
    
    	printf("取正整数列1、2、3、4、5、6、		n=6的值=%d\n\n",f1(6));
    	printf("取奇数数列1、3、5、7、9、11、		n=6的值=%d\n\n",f2(6));
    	printf("取偶数数列2、4、6、8、10、12、		n=6的值=%d\n\n",f3(6));
    	printf("求正整数列的和1、2、3、4、5、6、	   的值=%d\n\n",s1(6));
    	printf("求奇数数列的和1、3、5、7、9、11、	   的值=%d\n\n",s2(6));
    	printf("求偶数数列的和2、4、6、8、10、12、	   的值=%d\n\n",s3(6));
    	return 0;
    }
    
    
    //递归函数,正整数列 
    int f1(int n)	//n  取n的值 
    {
    	if( n == 1)
    	{
    		return 1;	
    	}
    	return f1(n - 1) + 1;	//1 2 3 4 5 6 7 8 9
    }
    
    
    //递归函数,奇数数列 
    int f2(int n)	//n  取n的值 
    {
    	if( n == 1)
    	{
    		return 1;	
    	}
    	return f2(n - 1) + 2;	//1 3 5 7 9 11 13 15 17
    }
    
    
    //递归函数,偶数数列 
    int f3(int n)	//n  取n的值 
    {
    	if( n == 1)
    	{
    		return 2;	
    	}
    	return f3(n - 1) + 2;	//2 4 6 8 10 12 14 16 18 20
    }
    
    
    
    //递归函数,求正整数列的和 
    int s1(int n)	//n  取n的值 
    {
    	if( n == 1)
    	{
    		return 1;	
    	}
    	return s1(n - 1) + n;	//1 2 3 4 5 6 7 8 9
    }
    
    
    //递归函数,奇数数列的和 
    int s2(int n)	//n  取n的值 
    {
    	if( n == 1)
    	{
    		return 1;	
    	}
    	return s2(n - 1)+ n + 3;	//1 3 5 7 9 11 13 15 17
    }
    
    
    //递归函数,偶数数列的和
    int s3(int n)	//n  取n的值 
    {
    	if( n == 1)
    	{
    		return 2;	
    	}
    	return s3(n - 1) + n + 3;	//2 4 6 8 10 12 14 16 18 20
    }
    
    
    /*
    取正整数列1、2、3、4、5、6、            n=6的值=6
    
    取奇数数列1、3、5、7、9、11、           n=6的值=11
    
    取偶数数列2、4、6、8、10、12、          n=6的值=12
    
    求正整数列的和1、2、3、4、5、6、           的值=21
    
    求奇数数列的和1、3、5、7、9、11、          的值=36
    
    求偶数数列的和2、4、6、8、10、12、         的值=37
    
    
    --------------------------------
    Process exited after 0.02777 seconds with return value 0
    请按任意键继续. . .
    */
    

     

    展开全文
  • C语言递归分析

    2014-12-11 22:38:00
    思路 下图描述的是从问题引出到问题变异的思维过程: 概述 本文以数制转换为引,对递归进行分析。主要是从多角度分析递归过程及讨论递归特点和用法。...一次在完成某个程序时,突然... 按权求和 --> dest很明显...
  • C语言 递归求n的阶乘和

    千次阅读 2019-04-19 16:39:26
    思路:定义一个fun函数来求n的阶乘,主函数中用for循环来对阶乘求和。fun函数使用递归,每次调用自己,求出阶乘。 #include<stdio.h> int fun(int n) { if(n==1) return 1; else return fun(n-1)*n;//...
  • C语言递归求1累加到100求和要实现的功能如下完整源代码实现如下 要实现的功能如下 1+2+3+…+100,用递归实现 完整源代码实现如下 #include <stdio.h> int x = 0; int function(int num); int main() { int ...
  • java 递归求和

    千次阅读 2017-03-12 16:36:54
    求1-100的和,和c语言还是很相似的 import java.io.*; import java.util.Scanner; public class Main { public static void main(String [] args){ System.out.println(leijia(1)); } public static int ...
  • leetcode 617. Merge Two Binary Trees(C语言,二叉树求和递归)53
  • 题目:(C语言递归实现)S=1k +2k+……+nK(1的K次方,2的K次方等等),N,K从键盘浏览.解答:#includeint g(int n,int k){if(k==1)return n;return g(n,k-1)*n;}int f(int n,int k){if(n==1)return 1;return f(n-1,k)+g(n,...
  • 因为要递归求和,所以代码中一定要体现递归 求前N项和,就得先求前N-1项和,进而还需要知道前N-2项和...... 所以,代码中的递归调用部分就应该是递归求某一项的前边几项的和,不断递归去求和,直到递归到求1+2的和...
  • 利用函数递归来时现将一个sh数的每一位拆出来然后求和,即是:例如一个shu数 1888;它的每一位sh是 1 8 8 8,而每一位的每一位的和最终是 25,而接下来jian建立用函数的递归来sh实现这个算法。 #include&lt;...
  • ![图片说明](https://img-ask.csdn.net/upload/201506/22/1434974770_34742.png)
  • 递归训练 递归的问题说难不难,说简单也不简单,关键的点就在找到递归的式子...一、求和问题 小明准备开始背单词,计划用十天,第一天背一个单词,第二天背第一天多背一个单词,第三天比第二天又多背一个单词,...
  • Problem Description We once did a lot of recursional problem . I think some of them is easy for you and some if hard for you. Now there is a very easy problem .... We can define sum(n) as follow: ...
  • 很多初学C语言的人,一开始都会有求和以及求积的程序,如果用简单的将输入的数一个个加起来那样是很繁琐的,当然效率是高的,但是程序看起来非常不简洁!如果你学习用递归方式求解,你会发现一切都是那么简单!下面...
  • 题目解决代码及点评/* 功能:编一个程序,读入具有5个元素的整型数组,然后调用一个函数,递归计算... //递归求和数组中每一项值 void main(){ int a[] = {1,2,3,4,5}; //创建数组 int n = sizeof(a)/sizeo
  • 递归究竟有多强大,看看这道题就知道了。
  • 斐波那契数列求和——C语言(小白版) ** 题目要求 斐波那契数列 1, 1, 2, 3, 5, 8, 13, 21, 34……不难发现当n>2时,an=an-1+an-2 要求:当屏幕输入n(n>2)时,输出前n项以及前n项的和。 注意!我们不使用...
  • 文章目录题目描述:输入输出:完整代码(递归版本):完整代码(非递归版本):分析:(1)首先分析第n个比第n-1个多的数的规律,可得:(2)递归法计算某个箱子的玩具球数,在主函数中使用for循环实现求和:(3)或...
  • The best time to plant a tree was 10 years ago....文章目录1、函数递归练习1 : (画图讲解)练习2∶(画图讲解)练习3∶练习4∶2、递归练习:1、字符串逆序:2、数字求和:3、求n的k次方: 1、函数递归
  • 使用递归算法求出 5 的阶乘的值 #include<stdio.h> int factorial(int a) { int temp = a; if (a < 0) { printf("error"); } else if(a==0 || a==1) { temp = 1; return temp; } else { ...
  • 今天我们来完成一道数学题 ...接下来就是很典型的递归函数了。然后把f(1)到f(n)相加就可以了,下面放上我的第一遍代码,比较粗糙,以后再仔细修改。 如果打家有好的建议请提出来,O(∩_∩)O谢谢! 下面是我的代
  • 题目描述 求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一个数字(n不超过20)。 输入 ...20,我们要考虑到当n达到十...阶乘函数factorial的基本思想是——递归。 当n=0时,阶乘结果为1; 当n>0时,递归计算n*factorial(n-1)。
  • 问题在于只用C语言递归和回溯都不太懂,希望给个大概的思路,初学语言,谢谢了!

空空如也

空空如也

1 2 3 4
收藏数 77
精华内容 30
关键字:

c语言递归求和

c语言 订阅