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

    千次阅读 2020-03-17 17:52:32
    本题要求实现一个计算非负整数阶乘的简单函数,并利用...函数fact应返回n的阶乘,建议用递归实现。函数factsum应返回 1!+2!+…+n! 的值。题目保证输入输出在双精度范围内。 裁判测试程序样例: #include <stdio.h...

    本题要求实现一个计算非负整数阶乘的简单函数,并利用该函数求 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;
    }
    
    展开全文
  • 函数fact应返回n的阶乘,建议用递归实现。函数factsum应返回 1!+2!+…+n! 的值。题目保证输入输出在双精度范围内。 裁判测试程序样例: #include <stdio.h> double fact( int n ); double fac

    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-02-08 13:13:30
    递归阶乘

    #C语言用递归实现阶乘

    #include<stdio.h>
    int digui(int m)
    {
    	if(m==0) return 1;
    	else
    	{
    	return 	digui(m-1)*m;
    	}
    }
    int main()
    {
    	int n;
    	scanf("%d",&n);
    	printf("%d", digui(n));
    	return 0;
    }
    

    输入一个正整数
    输出为该整数的阶乘

    如果用int的来定义N的类型,N最大为多少?(溢出问题)

    展开全文
  • 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; ...

    项目场景:

    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;
        int ret=0;
        scanf("%d",&n);
        for( int i=1;i<=n;i++){	//分别求1!到10!阶乘并相加求和
            ret=ret+jiecheng(i);
        }
        printf("%d",ret);
        return 0;
    }
    
    

    逻辑分析:

    1.对于递归思想的理解,将一个复杂的问题分治成多个简单问题,然后再组合解决;
    2.在阶乘的问题中,可以将n的阶乘看做n*(n-1)后再与(n-2)相乘,一直递推到乘1;
    3.C语言函数调用的模型,递归调用时先从一个条件依次递推,触发结束条件后再依次往前回归到第一次调用;即完成整个递归过程

    展开全文
  • 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! (读作:n的阶乘),其定义如下: n! = n·(n - 1)• (n - 2)· …·1...思路: 阶乘 就是每次用自己乘以自己-1,然后用自己-1在乘自己-1-1……利用递归的性质可以很好的实现这个过程。 ...
  • 菲波那锲数的C语言实现;1, 1,2,3,5,8,13...递归实现斐波那契数列;#includeint main(){int n=0;scanf("%d",&n)int fib(int n); // 声明斐波那契数列;if(n<=2)return 1;elsereturn fib(n-1)+fib(n-2)...
  • C语言递归方法求阶乘

    2014-03-31 14:03:54
    C语言练习程序,采用递归方法求阶乘.调用子函数实现
  • 递归实现斐波那契数列; #include&amp;lt;stdio.h&amp;gt; int main() { int n=0; scanf(&quot;%d&quot;,&amp;amp;n) int fib(int n); // 声明斐波那契数列; if(n&amp;lt;=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++实现的:递归实现阶乘算法N! 1、 递归实现n! 题目描述:输入n值,求解n的阶乘 方法一:累乘法 方法二:递归法 源码: 一、 递归实现n! 1、 累乘法 #include using namespace std; #define UL unsigned ...
  • C语言递归和非递归分别实现求n的阶乘 1.用递归的方法求解 int jiecheng(int n) { if (n == 1) { return 1; } return n*jiecheng(n - 1);//n乘n-1开始递归 } int main() { int ret = jiecheng(4); printf("%d...
  • #include /*tail recursive*/ int fact_iter(int product, int count, int max_count) { if (count > max_count) return product; fact_iter(pro
  • uint32 func(uint32 n) { uint32 ret = 0; if (n>1) { ret = n*func(n-1); } else { ret = 1; } return ret; }
  • 当我们需要使用递归来完成某些操作的时候,我们先要了解什么是递归什么是递归递归,就是在运行的过程中调用自己。一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界...
  • #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> ...//递归方式 int factorial(int n) { if (n == 1) { return 1; } return n * factorial(n - 1);...
  • 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); //递归调用...
  • 递归法 #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; int Factor(int n) { if (n==1) { return 1; } if (n == 0) { return 0; } return n * Factor(n-1); } int main() { ...
  • 递归实现: #include "stdio.h" int Factorial(int n) { if(n==1) return n; else return n*Factorial(n-1); } int main() { int n,m; scanf("%d",&n); printf("%d",Factorial(n)); return 0; } 非...
  • C语言实现大数阶乘

    千次阅读 2008-10-15 13:20:00
    今天上班有点空闲时间, 想起了大学学数据结构时的一道题目, ... 于是就试了一下, 使用VC6.0 计算小于13的数的阶乘递归很容易实现代码如下: int Factorial(int n) { if(n return n * Factorial(n - 1); } 进行大
  • 递归实现 #include<stdio.h> #include<string.h> int m_strlen(char*string) { if (*string == '\0') return 0; else return 1+m_strlen(string + 1); } int main() { int len = m_st...
  • #include <stdio.h> //递归函数 f int f(int a) { if(a<=1) return 1;... //实现递归 } int main() { int n,result; scanf("%d",&n); result = f(n); printf("%d",result); r...
  • # ..."请输入要求n的阶乘:\n" ) ; scanf ( "%d" , & n ) ; int z = factorial ( n ) ; printf ( "%d的阶乘是%d\n" , n , z ) ; system ( "pause" ) ; return 0 ; }

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 253
精华内容 101
关键字:

c语言递归实现阶乘

c语言 订阅