精华内容
下载资源
问答
  • C语言递归阶乘

    2020-03-26 19:47:47
    C语言递归阶乘 #include <stdio.h> #include <stdlib.h> int fac(int n) { if (n <= 1) { return 1; } else { return n*fac(n - 1); } } int main() { ...

    C语言递归求阶乘

    #include <stdio.h>
    #include <stdlib.h>
     
    int fac(int n)
    {
        if (n <= 1)
        {
            return 1;
        }
        else
        {
            return n*fac(n - 1);
        }
        
    }
    int main()
    {
        int n = 0;
        printf("请输入一个数:");
        scanf_s("%d", &n);
        int fac(n);
        printf("%d\n", fac(n));
        system("pause");
        return 0;
    }
    
    展开全文
  • c语言递归阶乘

    2020-04-10 20:46:08
    递归函数的定义: 先引入一个例子:输入n,求n!。 分析: n!= 1 * 2 * 3 * … * n 1)一般解法: #include"stdio.h" int main() { int n, i; double s = 0; scanf("%d", &n); for(i = 1;i <= n;i++) { ...

    递归函数的定义:一个函数在它的函数体内调用它自身称为递归调用,这种函数称为递归函数。递归函数就是反复调用其自己。递归函数要有两要素:1.递归表达式 2.终止条件

    先引入一个例子:输入n,求n!。
    分析:
    n!= 1 * 2 * 3 * … * n
    1)一般解法:

    #include"stdio.h"
    int main()
    {
        int n, i;
        double s = 0;
        scanf("%d", &n);
        for(i = 1;i <= n;i++)
        {
            s *= i;
        }
        printf("%lf", s);
        return 0;
    }

    先分析一下5!:
    5!=1 * 2 * 3 * 4 * 5
    ||
    5!=5 * 4 * 3 * 2 * 1
    ||
    5!= 5 * 4! 如果要计算5!先要计算出4!
    4!= 4 * 3! 如果要计算4!先要计算出3!
    3!= 3 * 2! 如果要计算3!先要计算出2!
    2!= 2 * 1! 如果要计算2!先要计算出1!
    1!=1 1!就是1
    上面从上至下的分析过程称之为递推
    上述分析发现我们并没有计算5!的答案,那怎样算出5!的答案?
    把分析的过程倒过来:
    把1!的结果1代入上一个表达式中执行2 * 1,得到2!的结果2
    把2!的结果2代入上一个表达式中执行3 * 2 ,得到3!的结果6
    把3!的结果6代入上一个表达式中执行4 * 6,得到4!的结果24
    把4!的结果24代入上一个表达式中执行5 * 24,得到5!的结果120
    这个过程我们称之为递归
    递归算法是一个基础类的算法,也是一个比较容易理解的算法,但是递归的扩展能力是无限的。
    我们把上述分析变换成编程语言:
    fact(5)=5 * fact(4)
    fact(4)=4 * fact(3)
    fact(3)=3 * fact(2)
    fact(2)=2 * fact(1)
    fact(1)=1
    归纳出来就是:
    fact(n)=n*fact(n-1) 如果要执行该操作必须满足条件(递归算法表达式)
    fact(1)=1 如果要执行该操作必须满足条件(终结条件)
    2)解法:

    #include"stdio.h"
    double fact(double n)
    {
         double s;
        if(n >= 2)
        {
            s = n*fact(n-1);
        }
        else if(n ==1)
        {
            s = 1;
        }
        return s;//不输出因为每次计算的fact结果是用作其他数值的计算所用,另做他用,需要返回值。
    
    }
    int main()
    {
        double s,n;
        scanf("%lf", &n);
        s = fact(n);
        printf("%lf",s);
        return 0;
    }
    展开全文
  • 本题要求实现一个计算非负整数阶乘的简单函数,并利用该函数求 1!+2!+3!+…+n! 的值。 函数接口定义: double fact( int n ); double factsum( int n ); 函数fact应返回n的阶乘,建议用递归实现。函数factsum应返回...

    6-9 递归求阶乘和 (15 分)

    本题要求实现一个计算非负整数阶乘的简单函数,并利用该函数求 1!+2!+3!+…+n! 的值。

    函数接口定义:

    double fact( int n );
    double factsum( int n );
    

    函数fact应返回n的阶乘,建议用递归实现。函数factsum应返回 1!+2!+…+n! 的值。题目保证输入输出在双精度范围内。

    裁判测试程序样例:

    #include <stdio.h>
    
    double fact( int n );
    double factsum( int n );
    
    int main()
    {
        int n;
    
        scanf("%d",&n);
        printf("fact(%d) = %.0f\n", n, fact(n));
        printf("sum = %.0f\n", factsum(n));
    
        return 0;
    }
    
    /* 你的代码将被嵌在这里 */
    

    输入样例1:

    10
    

    输出样例1:

    fact(10) = 3628800
    sum = 4037913
    

    输入样例2:

    0
    

    输出样例2:

    fact(0) = 1
    sum = 0
    

    Solution:

    double fact( int n ){
        if(n>1){
        return n*fact(n-1);
        }
        if(n==1){
            return 1;
        }
        if(n==0){
            return 1;
        }
    }
    
    double factsum( int n ){
        int sum = 0;
        sum = sum + fact(n);
        if(n>1){
        return sum+factsum(n-1);
        }
        if(n==1){
            return 1;
        }
        if(n==0){
            return 0;
        }
    }
    
    展开全文
  • c语言 递归阶乘

    千次阅读 2020-03-17 17:52:32
    本题要求实现一个计算非负整数阶乘的简单函数,并利用该函数求 1!+2!+3!+…+n! 的值。 函数接口定义: double fact( int n ); double factsum( int n ); 函数fact应返回n的阶乘,建议用递归实现。函数factsum应返回...

    本题要求实现一个计算非负整数阶乘的简单函数,并利用该函数求 1!+2!+3!+…+n! 的值。

    函数接口定义:

    double fact( int n );
    double factsum( int n );
    

    函数fact应返回n的阶乘,建议用递归实现。函数factsum应返回 1!+2!+…+n! 的值。题目保证输入输出在双精度范围内。

    裁判测试程序样例:

    #include <stdio.h>
    
    double fact( int n );
    double factsum( int n );
    
    int main()
    {
        int n;
    
        scanf("%d",&n);
        printf("fact(%d) = %.0f\n", n, fact(n));
        printf("sum = %.0f\n", factsum(n));
    		
        return 0;
    }
    
    /* 你的代码将被嵌在这里 */
    

    我的答案:

    double fact(int n)
    {
    	double result;
    	if (n == 1 || n == 0)
    	{
    		result = 1;
    	}
    	else
    	{
    		result = n * fact(n - 1);
    	}
    	return result;
    }
    double factsum(int n)
    {
    	double sum;
    	if (n == 1)
    	{
    		sum = 1;
    	}
    	else if (n == 0)
    	{
    		sum = 0;
    	}
    	else
    	{
    		sum = fact(n) + factsum(n - 1);
    	}
    	return sum;
    }
    
    展开全文
  • C语言递归解决阶乘问题

    千次阅读 2018-07-14 07:45:15
    递归函数的概念是:直接...使用递归反复分治,大问题变相同性质的小问题,再进行递归求解今天第一次写博客来一个简单的递归例子 阶乘 大一时不会递归一般用类似for的循环体就行求解正常递归和for循环等差别在于for...
  • 1.将递归阶乘封装函数 2.求1!-10!的和 代码实现: #include<stdio.h> int jiecheng(int n){ if(n==0){ //递归正常结束 return 1; } return n*jiecheng(n-1);//递归调用 } int main(){ int n=0; ...
  • C语言-递归计算阶乘

    2021-04-19 10:06:10
    #include <...//计算阶乘,递归方式 // 0!=1; // n! = n*(n-1) int a(int n) { if (n > 0) { return n*a(n-1); } else { return 1; } } int main() { printf("%d\n",a(4)); return 0; }
  • 递归这个是事儿困扰了我好久,直到现在我还没有理解透彻,下面我来说说我不透彻的理解: 首先我们都知道代码的执行是从上到下的从左到右,函数在运行到递归处就会再次进入自己,只是这次额参数改变了,这里需要注意...
  • C语言 递归法求阶乘

    2020-08-30 18:18:05
    C语言 递归法求阶乘 利用一个函数进行递归阶乘,但该数不能小于0,且若为0或1,得到的结果都为1,其他情况,对该数不断递归 #include <stdio.h> #include <stdlib.h> int main() { int fac(int n); /...
  • uint32 func(uint32 n) { uint32 ret = 0; if (n>1) { ret = n*func(n-1); } else { ret = 1; } return ret; }
  • C语言递归方法求阶乘

    2014-03-31 14:03:54
    C语言练习程序,采用递归方法求阶乘.调用子函数实现
  • 一、递归 //递归 #include <stdio.h> #include <string.h> void main(){ int n; int fun(int n); printf("请输入n="); scanf("%d",&n); printf("%d\n",fun(n)); } int fun(int n) { int m,...
  • C语言递归函数求阶乘与前n项和

    千次阅读 2019-04-30 21:19:42
    C语言递归函数 1.求阶乘: #include<stdio.h> int recursion(int num) { if(num==1) return 1; else { num=num*recursion(num-1); return num; } ...
  • php递归、尾递归计算阶乘

    千次阅读 2016-12-16 09:43:14
    c语言有尾递归之说,可以立即释放内存,效率也比递归要高。 之前使用php做了测试,测试结果显示尾递归在php中并没有效果。
  • //用递归函数来计算N的阶乘 double factorial(int n) { double result; if(n) { printf("输入错误\n"); } else if(n==1 ||n==0) { result=1; } else { result=factorial(n-1)*n; //n=5 5-1=4 4*5...
  • //6. //阶乘 long fact(int n){  //先求出传进来数的平方  int value = square(n); ... long jiecheng = 1;... //在计算阶乘  while (value >= 1) {  jiecheng *= value;  value--;  }  ret
  • 递归就是一个方法自己调用自己。在编程语言中,如果一个...}C语言支持递归,即一个调用自身的函数。但是在使用递归时,程序员需要小心定义函数的退出条件,否则它将进入无限循环。递归函数对于解决许多数学问题非...
  • printf("这个程序计算阶乘\n"); printf("请输入0-12之间的一个值,输入q退出:\n"); while (scanf_s("%d", &num) == 1) { if (num < 0 || num > 12) printf("无效数字,请重新输入0-
  • 递归就是一个方法自己调用自己。在编程语言中,如果一个...}C语言支持递归,即一个调用自身的函数。但是在使用递归时,程序员需要小心定义函数的退出条件,否则它将进入无限循环。递归函数对于解决许多数学问题非...
  • C语言编程之递归阶乘

    千次阅读 2017-07-20 19:22:35
    题目: 利用递归方法实现一个函数,该函数能够实现n的阶乘,即 n! = n*(n-1)*…*3*2*1; #include int factorial(int n) { if(n == 1) //结束递归判断条件 { return; } return n*factorial(n - 1); //递归调用...
  • C语言 递归求5的阶乘

    千次阅读 2019-04-19 16:24:36
    思路:在子函数中做5的阶乘并使用递归自我调用,在主函数中输出每一次计算的结果。 #include<stdio.h> #include<Windows.h> #include<string.h> int fact(int j) { int sum; if (j == 1) { ...
  • C语言 递归求n的阶乘

    千次阅读 2019-04-19 16:39:26
    fun函数使用递归,每次调用自己,求出阶乘。 #include<stdio.h> int fun(int n) { if(n==1) return 1; else return fun(n-1)*n;//例如5的阶乘就等于(4的阶乘)*5,4的阶乘等于(3的阶乘)*3··· } int ...
  • c语言递归实现100的阶乘

    千次阅读 2017-01-04 14:56:16
    //使用递归进位 } else { a[i]=temp; } } } void copyArray(int a[],int b[]) { for(int i=0;i[0];i++) { b[i]=a[i]; } } void printa(int a[]) { printf("位数:%d\n",a[0]); ...
  • C语言递归实现n的阶乘(n!)

    万次阅读 2018-10-09 20:45:08
    非负整数n的阶乘可以表示为n!...请编写一个程序,读入一个非负整数,计算并输出其阶乘。 思路: 阶乘 就是每次用自己乘以自己-1,然后用自己-1在乘自己-1-1……利用递归的性质可以很好的实现这个过程。 ...
  • C语言计算阶乘

    2021-02-26 17:03:16
    方法1——递归实现 #include<stdio.h> int func(int n) { if (n <= 1) { return 1; } else { return n * func(n - 1); } } int main() { printf("%d\r\n", func(5)); } 方法2——循环实现 #...
  • C语言递归和非递归实现n的阶乘

    千次阅读 2018-10-25 01:23:01
    //递归实现n的阶乘  什么是阶乘:0!= 1,n!=n * (n - 1) * (n - 2)......3 * 2 * 1;  解题思路: 1&gt; 分析题意,很明显0是递归出口;  2&gt; 很好看出,递归调用自己,直到n等于0,返回之前的...
  • C语言递归算法练习 文章目录 C语言递归算法练习 练习代码 N的阶乘 斐波那契数 打印每位数字 strlen模拟(测量字符串长度) N的K次方 字符串逆序    递归是一种算法设计中常用的一种方法,其实就是一个过程或者函数...
  • c语言递归系列总结

    千次阅读 多人点赞 2021-01-24 18:00:36
    递归总结递归什么是递归递归的特点 结构 缺点递归的本质递归的应用递归实战阶乘阶乘...以 计算阶乘为例,假设我们输入6 计算6的阶乘为例 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int factorial(int

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,849
精华内容 1,539
关键字:

c语言递归计算阶乘

c语言 订阅