用递归算法,求1+2+3+······+n,n由键盘输入。 用C语言程序编写。

作者&投稿:唐昏 (若有异议请与网页底部的电邮联系)
从键盘输入n,采用递归方法求出一下表达式的值:1!+2!+3!+······+n!~

#includelong fun(int n)
{
int i;
if(n == 1)
return 1;
else
{
i = fun(n-1);
return n*i;
}
}long sum(int n)
{
int i,j;
if(n == 1)
return 1;
else
{
i = fun(n);
j = sum(n-1);
return i+j;
}
}
int main()
{
int n;
long s;
scanf("%d",&n);
s = sum(n);
printf("%ld
",s);
return 0;
}这才是递归啊,哥们

算式如下:
#include "stdio.h"
int fun(int n)
{if(n==1)return 1;
return n+fun(n-1);
}
int main()
{int n;
scanf("%d",&n);
printf("1+2+...+%d=%d
",n,fun(n));
return 0;
}
递归数据
数据类型可以通过递归来进行定义,比如一个简单的递归定义为自然数的定义:“一个自然数或等于0,或等于另一个自然数加上1”。Haskell中可以定义链表为:



这一定义相当于宣告“一个链表或是空串列,或是一个链表之前加上一个字符串”。可以看出所有链表都可以通过这一递归定义来达到。

int fun(int m)
{
if(m==1)
return 1;
else
return m+fun(m-1);
}

void main(){
int x;
scanf("%d",&x);
printf("%d\n",fun(x));
}

你自己好好分析一下,相信你能写的出来,这是最基本的!

#include<stdio.h>
int fun(int n){
if(n==1)return 1;
else return fun(n-1)+n;
}
int main(){
int n;
printf("请输入n的值:");
scanf("%d",&n);
printf("%d\n",fun(n));
return 0;
}


什么是递推法和递归法?
问题四:递推和递归算法有什么区别 递归就是自己调用自己吧!递推是从头向后推吧!问题五:递推和递归的区别是什么 1.递归:将问题规模为n的问题,降解成若干个规模为n-1的问题,依次降解,直到问题规模可求,求出低阶规模的解,代入高阶问题中,直至求出规模为n的问题的解。2.递推:构造低...

时间复杂度怎么算例题
2.递归算法效率分析方法 递归算法的分析方法比较多,最常用的便是迭代法。迭代法的基本步骤是先将递归算法简化为对应的递归方程,然后通过反复迭代,将递归方程的右端变换成一个级数,最后求级数的和,再估计和的渐进阶。<1>例:n!算法的递归方程为:T(n)=T(n-1)+O(1);迭代展开:T(n)=T(n-...

简述贪心,递归,动态规划,及分治算法之间的区别和联系
2、递归算法:问题解法按递归算法实现。如Hanoi问题;数据的结构形式是按递归定义的。如二叉树、广义表等。3、动态规划:动态规划算法通常用于求解具有某种最优性质的问题。4、分治算法:可以再把它们分成几个更小的子问题,以此类推,直至可以直接求出解为止。二、方法不同 1、贪心算法:在对问题求解时...

...1、2、3、5、8、13、21、34... 求第30位数是多少, 用递归算法...
代码如下:public class Test { public static void main(String[] args) { System.out.println("结果是:"+Test.foo(30));} \/ 常见解法 \/ public static int foo(int i){ int a=1,b=1;int c=0;for(int k=2;k

计算机算法中的递归法与选择排序法是什么?请细讲
递归算法的执行过程分递推和回归两个阶段。在递推阶段,把较复杂的问题(规模为n)的求解推到比原问题简单一些的问题(规模小于n)的求解。例如上例中,求解fib(n),把它推到求解fib(n-1)和fib(n-2)。也就是说,为计算fib(n),必须先计算fib(n-1)和fib(n-2),而计算fib(n-1)和fib(n...

C语言递归求组合数,自己分析只得出(1)5,4,3(2)4,3,2(1)3,2,1运行结果...
这是一个递归求组合的算法,递归会把所有条件的"遍历"一次,根据要求处理。else 是最终k<=1时输出,不用解释。关键看if 里面 comb(int m,int k) 有个for 使得a[k]=i; i的取值可以为 m-k,所以对于输入5 3 对应的是a[0]取为5 -3 a[1] 4-2,a[2] 3-1,通过递归输出了...

堆如果用二叉链表表示成二叉树,用递归算法判断是否为堆?求思想求...
堆的判定条件为,对于队中的任意子树其根元素和其左右孩子元素之间的关系需要符合堆的定义,例如大顶堆需要保证根结点的值大于等于其左右孩子的值,小顶堆则反之。算法如下:1. 指定一个树的根结点,判断根结点与左孩子以及右孩子的关系是否满足堆的要求。2. 若不满足则返回不是堆 3. 若满足则递归...

Java数据结构二叉树深度递归调用算法求内部算法过程详解
二叉树 1 2 34 5 6 7这个二叉树的深度是3,树的深度是最大结点所在的层,这里是3.应该计算所有结点层数,选择最大的那个。根据上面的二叉树代码,递归过程是:f(1)=f(2)+1 > f(3) +1 ? f(2) + 1 : f(3) +1 f(2) 跟f(3)计算类似上面,要计算左右结点,然后取大...

什么是递归?
递归:递归是一种重要的编程技术。该方法用于让一个函数从其内部调用其自身。一个示例就是计算阶乘。0 的阶乘被特别地定义为 1。 更大数的阶乘是通过计算 1 * 2 * ...来求得的,每次增加 1,直至达到要计算其阶乘的那个数。下面的段落是用文字定义的计算阶乘的一个函数。“如果这个数小于零,则...

java中递归算法是什么怎么算的?
递归往往能给我们带来非常简洁非常直观的代码形式,从而使我们的编码大大简化,然而递归的思维确实跟我们的常规思维相逆的,通常都是从上而下的思维问题,而递归趋势从下往上的进行思维。二、递归算法解决问题的特点:【1】递归就是方法里调用自身。【2】在使用递归策略时,必须有一个明确的递归结束条件,...

彭泽县18024284208: 用C语言做到题编写程序,用递归的方法求1+2+3+…+n,可设递归函数为fun ().(1)递归结束条件为n=0;(2)递推公式为n+fun (n - 1). 用C语言编程序 -
巫忠沙利:[答案] #includeint fun(int n){if(n==0){return 0;}else{return n+fun(n-1);}}void main(){int n;long sum=0;scanf("%d",&n);sum=fun(n);printf("%l...

彭泽县18024284208: 用递归算法,求1+2+3+······+n,n由键盘输入. 用C语言程序编写. -
巫忠沙利: #include<stdio.h> int fun(int n){ if(n==1)return 1; else return fun(n-1)+n; } int main(){ int n;printf("请输入n的值:"); scanf("%d",&n); printf("%d\n",fun(n)); return 0; }

彭泽县18024284208: c++问题,编写函数用递归的方法求1+2+3+、、、+n.在主函数中进行输入 -
巫忠沙利: int Sum(int n) {if(n == 1){ return 1; } return n + Sum(n-1); }int main() {int n = 0; cin >> n; int nSum = Sum(n); cout << nSum; return 0;}

彭泽县18024284208: 用递归的方法编写程序,求1!+2!+3!+……+n!,n为输入并且3≤n≤20 -
巫忠沙利: var fn = function(n){if(n == 1) return 1;else if(n > 1) return fn(n - 1) * n; } var sum = 0; for(var i = 3; i < 21; i++){sum += fn(i); } console.log(sum);

彭泽县18024284208: 用递归法求1+2+3+...+n -
巫忠沙利: int calc(int n) {if(n==1) return 1;else return n+calc(n-1); }

彭泽县18024284208: pascal 递归的方法做问题1、用递归的方法求1+2+3+……+N的值.2、用递归函数输出斐波那契数列第n项.0,1,1,2,3,5,8,13……3、输入一个非负整数,递归... -
巫忠沙利:[答案] 我直接写出最重要的把,只写子程序好了. 3: procedure f(x,s:longint); begin if x=0 then begin writeln(s);exit;end; f(x div 10,s*10+x mod 10); end; 主程序中: f(x,0);(x是要颠倒的数); 6: procedure f(x,s,t:longint); begin if t=0 then begin writeln(s);exit;end...

彭泽县18024284208: 使用递归方法,编写一个求解S=1+2+3+…+n的函数 -
巫忠沙利: #include "stdio.h" int fun(int num) {int sum; if( num==1) sum=1; else sum=num+fun(num-1); return sum;} void main() { int n,s; printf("n="); scanf("%d",&n); s=fun(n); printf("s=%d\n",s); }

彭泽县18024284208: 用递归函数实现一个累加和函数sum()计算1+2+3+....+k的和 -
巫忠沙利: 用递归的方法就必须先自定义一个函数,函数实现递归功能,同时考虑用户输入的合法性具体代码如下:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37#include <stdio.h> #include<...

彭泽县18024284208: 在主程序中提示输入整数n,编写函数用递归的方法求1+2+3+、、、+n的值 -
巫忠沙利: 代码如下: #include<iostream> using namespace std; int D(int n,int &M) { M=M+n; if(n>=1) D(n-1,M); else return 0; } int main() { int n,M=0; while(cin>>n) { D(n,M); cout<<"从1加到"<<n<<"的和为:"<<M<<endl; } cout<<"input error!"<<endl...

彭泽县18024284208: 以下为用递归方法求sum=1+2+3+···+n的程序,请根据提示补充完整. -
巫忠沙利: import java.io.*;public class Sum {public static int sum(int n) {if (n return 0;elsereturn sum(n - 1) + n;} public static void main(String args[]) {int result = 0;String str;int num = 0;System.out.println("Please input the number:");try {...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网