`
zhou347742
  • 浏览: 9899 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
最近访客 更多访客>>
社区版块
存档分类
最新评论

用C实现求阶乘之和(非递归实现)

阅读更多

这是是求阶乘和的非递归实现:

 

 

// methods1.c
#include <stdio.h>

long double Fn(int n);

int main(void)
{
    long double sum = 0;
    int i, n;
    i = n = 0;
    printf("Please input a number: \n");
    scanf("%d", &n);
    if (n > 1000 )
	printf("ERROR!The number is too large!\nPlease try again!(0~1000)\n");
    else if (n < 0)
	printf("ERROR!The number is invalid!\nPlease try again!(0~1000)\n");
    else
    {
	for (i = 0; i <= n; i++)
	    sum += Fn(i);
	printf("The %d factorial's sum is %Lf\n", n, sum);
    }

    return 0;
}

long double Fn(int n)
{
    int i = 1;
    long double temp = 1;
    if (n == 0)
	return 1;
    for (i = 1; i <= n; i++)
        temp = temp * i;
    return temp;
    
}

 

  • 大小: 507.5 KB
分享到:
评论
1 楼 deepfuture 2012-05-26  
加油,不错

相关推荐

    c语言递归求阶乘源码

    本篇文章主要涉及C语言中使用递归方法实现阶乘计算的技术细节。递归是一种基础且重要的编程技术,在计算机科学中有着广泛的应用场景。通过递归算法可以解决很多复杂问题,如树的遍历、图的搜索等。 #### 代码解析 ...

    嵌套调用求阶乘和_C语言_嵌套调用_

    1. **非递归方法**:这种方法通常不涉及嵌套调用,而是使用循环结构来实现。我们可以创建一个循环,从1到n,每次迭代都将当前数乘以前面所有数的积。以下是一个简单的示例: ```c #include int factorial(int n) ...

    算法基础与递归-百积问题-递归求公约数-求阶乘-斐波那契数列

    * 通过递归和非递归方法实现阶乘的计算 * 实现斐波那契数列的计算 * 实现汉诺塔问题的解决 四、代码实现 下面是实验的代码实现: 1. 汉诺塔问题的解决 ```c void hanoi(int n, char from, char to, char aux) { ...

    c语言 10的阶乘

    以下是一个简单的C语言实现,用于计算任意整数n的阶乘: ```c #include long long factorial(int n) { if (n == 0 || n == 1) return 1; else return n * factorial(n - 1); } int main() { int num = 10; ...

    用c语言求一个整数的阶乘

    标题中的“用C语言求一个整数的阶乘”指的是编写一个C语言程序来计算输入整数的阶乘。阶乘是一个数学概念,对于非负整数n,n的阶乘表示为n!,它等于所有小于及等于n的正整数的乘积,即1 * 2 * 3 * ... * n。描述中的...

    N选M的所有组合(递归与非递归实现)

    本主题将详细探讨如何从N个不同的元素中选择M个元素的所有可能组合,同时提供递归和非递归两种实现方式。 首先,我们来理解组合的概念。组合是指在不考虑顺序的情况下,从N个不同元素中选择M个元素的方法数。在数学...

    c语言分治法求众数重数-五大常见算法策略之——递归与分治策略,算法数据结构

    因此,在实际应用中,我们通常会考虑使用非递归的分治方法(如动态规划)来优化性能。 分治策略的其他经典应用包括排序算法,如快速排序和归并排序。快速排序通过选取一个“基准”元素,将数组分为两部分,一部分的...

    C语言实现的阶乘,排列和组合实例

    本文详细介绍了使用C语言实现阶乘、排列和组合的算法,下面将分别对这些算法的概念、实现方法以及相关技巧进行详细解释。 ### 阶乘的实现 阶乘表示的是一个正整数所有正整数乘积的运算。例如,5的阶乘表示为5!,其...

    算10000以内数阶乘的C语言程序

    以下是一个简单的C语言实现阶乘计算的示例: ```c #include long long factorial(int n) { if (n == 0 || n == 1) return 1; else return n * factorial(n - 1); } int main() { int num; printf("请输入...

    c代码-阶乘递归和普通

    本文将深入探讨如何在C语言中实现阶乘的递归和非递归(普通)方法。 首先,让我们定义阶乘的概念。阶乘表示的是一个正整数n与小于它的所有正整数的乘积,用符号“!”表示。例如,5! = 5 × 4 × 3 × 2 × 1 = 120...

    浅谈递归机制和非递归转换.txt

    1. **非递归阶乘计算**:可以使用循环来替代递归。 ```c int NonRecursiveFact(int n) { int result = 1; for (int i = 1; i ; i++) { result *= i; } return result; } ``` 2. **非递归斐波那契数列**:...

    c代码-编写一个求阶乘的函数Fact(),然后在主函数中,计算并输出1到n之间所有数的阶乘值

    // 定义Fact函数,这里可以选择递归或非递归实现 int Fact(int n); int main() { int n = 10; // 可以根据需要设置n的值 printf("阶乘表:\n"); for (int i = 1; i ; ++i) { printf("%d! = %d\n", i, Fact(i));...

    C/C++实现的高位阶乘程序

    下面是一个简单的非尾递归的高位阶乘函数实现: ```cpp unsigned long long factorial(int n) { if (n == 0 || n == 1) return 1; else return n * factorial(n - 1); } ``` 这个函数通过递归方式计算n的阶乘...

    数据结构与算法基础课程 C语言C++程序语言设计教程 3_2递归和非递归 共22页.pptx

    根据提供的信息,我们可以深入探讨《数据结构与算法基础课程》中的第3_2章节——“递归和非递归”。本章节主要介绍了递归的基本概念、递归算法的设计及其应用场景,并通过具体的例子来帮助理解递归思想。 ### 递归...

    常见C语言小程序代码

    非递归实现使用了循环来计算斐波那契数,而递归实现则使用了函数调用自身来计算。 二、阶乘 阶乘是数学中的一种运算,表示为一个整数的连续相乘。该程序也使用了两种方法来实现阶乘,一种是非递归实现,另一种是...

    c语言实现的排列组合程序

    总结,C语言实现排列组合程序的关键在于理解和应用递归,以及有效管理内存和计算效率。在实际编程时,需要考虑算法的时间复杂度和空间复杂度,以适应不同的问题规模。通过深入理解这些概念并熟练运用,可以解决更...

    阶乘 Factorial

    在C#编程语言中实现阶乘,我们可以使用递归和循环两种常见方法。下面我们将详细讨论这两种方法。 1. 递归方法: 递归是一种函数调用自身的技术。在计算阶乘时,我们可以定义一个名为`Factorial`的函数,它接受一个...

    c语言 递归

    #### 三、排列组合问题及递归实现 ##### 3.1 排列组合的数学定义 题目中提到的排列组合问题是通过公式 `C = m! / (n! * (m - n)!)` 来计算的,其中 `C` 表示从 `m` 个不同元素中取出 `n` 个元素的不同组合数。 ##...

    C语言函数的递归和调用实例分析.pdf

    所有递归问题都可以用非递归方式解决,但在某些复杂问题中,递归更易于理解和实现。 五、程序流程 在`fac`函数中,`t`变量在每次调用时都有独立的内存空间。函数的执行流程遵循以下步骤: 1. 检查终止条件(n等于1...

    C语言程序设计递归算法的研究与应用.pdf

    1. 二叉树遍历:使用递归算法可以实现二叉树的遍历,例如中序遍历、前序遍历、后序遍历等。 2. 皇后问题:使用递归算法可以解决皇后问题,例如八皇后问题等。 3. 汉诺塔问题:使用递归算法可以解决汉诺塔问题等。 4....

Global site tag (gtag.js) - Google Analytics