用循环和递归分别计算阶乘

转载 2012年03月21日 20:27:44
// factor.c -- uses loops and recursion to calculate factorials
#include <stdio.h>
long fact(int n);
long rfact(int n);
int main(void)
{
    int num;

    printf("This program calculates factorials.\n");
    printf("Enter a value in the range 0-12 (q to quit):\n");
    while (scanf("%d", &num) == 1)
    {
        if (num < 0)
            printf("No negative numbers, please.\n");
        else if (num > 12)
            printf("Keep input under 13.\n");
        else
        {
            printf("loop: %d factorial = %ld\n", 
                    num, fact(num));
            printf("recursion: %d factorial = %ld\n", 
                    num, rfact(num));
        }
        printf("Enter a value in the range 0-12 (q to quit):\n");
    }
    printf("Bye.\n");
  
    return 0;
}

long fact(int n)     // loop-based function
{
    long ans;

    for (ans = 1; n > 1; n--)
        ans *= n;
    
    return ans;
}

long rfact(int n)    // recursive version
{
    long ans;

    if (n > 0)
        ans= n * rfact(n-1);
    else
        ans = 1;
  
    return ans;
}

递归计算N阶乘

递归计算N阶乘// 递归计算N阶乘.cpp : 定义控制台应用程序的入口点。 //#include "stdafx.h" #include #include #includelong Factoria...
  • u011233535
  • u011233535
  • 2015年07月31日 17:05
  • 1019

求阶乘 递归实现和非递归实现

一个数的阶乘就是这个数连乘每个比前一个数小1的数,例如5的阶乘是:5 * 4 * 3 * 2 * 1,  0和1的阶乘是1.用公式实现: fac(n) =           1           ...
  • NaN_Lovelance
  • NaN_Lovelance
  • 2016年09月04日 16:01
  • 7507

递归和非递归实现阶乘

采用递归和非递归计算数的阶乘: 递归算法: fuctorial{ int factR(int n){     int result;     if(n==1)     return 1;...
  • chen825919148
  • chen825919148
  • 2012年09月26日 20:58
  • 2241

Python实例浅谈之四递归求斐波那契、阶乘、累加和

一、问题        脚本递归求斐波那契、阶乘和、累加和函数的运行。先在单线程中运行这三个函数,然后在多线程中做同样的事,以说明多线程的好处。以及子类化threading线程模块的Thread类...
  • taiyang1987912
  • taiyang1987912
  • 2015年04月03日 09:21
  • 2524

算法如功夫——C++ 用递归函数计算n的阶乘n!

算法如功夫,套路练久了,才能应用自如!学功夫不能死练,知其所以然,取长补短! #include int main(int argc, char* argv[]) {        unsigned ...
  • Dreamcode
  • Dreamcode
  • 2008年03月14日 11:55
  • 5620

递归算法求10的阶乘

package myproject; /** * * @author 李瑞琦 * 计算10的阶乘,采用递归算法。 * */ public class Test { static l...
  • racy696
  • racy696
  • 2017年07月20日 16:51
  • 262

利用递归方法求5!的阶乘

/* * 题目:利用递归方法求5!的阶乘。 * 分析: * 首先明确什么是递归? 递归: */ public class DiGuiQiuJieCheng { public ...
  • weixin_38894058
  • weixin_38894058
  • 2017年09月24日 10:44
  • 770

用递归函数求阶乘

2. * Copyright (c) 2012, 烟台大学计算机学院 3. * All rights reserved. 4. * 作 者: 吕建 5. * 完成日期:201...
  • jectjian
  • jectjian
  • 2012年11月26日 10:05
  • 1184

使用三种循环计算10的阶乘

1. for loop DECLARE C_NUM INT :=1; BEGIN FOR I IN 1 .. 10 LOOP C_NUM := C_NUM * I; END LOO...
  • gumengkai
  • gumengkai
  • 2016年04月25日 22:38
  • 906

C++:用递归算法求阶乘

#include using namespace std; int fact(int n); int main() { int i; cout > i; cout
  • dzf912306090
  • dzf912306090
  • 2014年03月13日 19:49
  • 1986
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用循环和递归分别计算阶乘
举报原因:
原因补充:

(最多只允许输入30个字)