Chinaunix首页 | 论坛 | 博客
  • 博客访问: 444803
  • 博文数量: 89
  • 博客积分: 2713
  • 博客等级: 少校
  • 技术积分: 938
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-18 21:19
个人简介

为了成为自由自在的人而奋斗!

文章分类

全部博文(89)

文章存档

2016年(5)

2015年(9)

2014年(2)

2013年(10)

2012年(1)

2011年(30)

2010年(32)

分类: C/C++

2010-09-26 00:25:31

递归过程一般通过函数或子过程来实现。 
递归算法:在函数或子过程的内部,直接或者间接地调用自己的算法。
最简单的就是求一个整数的阶乘:
n! = n * (n - 1)!;

程序如下:
#include

int getFactorial(int n)
{
    if (n < 2) {
        return 1;
    } else {
        return n * getFactorial(n - 1);
    }
}

int main(void)
{
    int n;

    scanf("%d", &n);

    printf("%d! = %d", n, getFactorial(n));

    return 0;
}
运行结果:

Administrator@fishmwei /cygdrive/h/blog
$ gcc factorial.c

Administrator@fishmwei /cygdrive/h/blog
$ a
10
10! = 3628800
Administrator@fishmwei /cygdrive/h/blog


这个是最简单的,还有一个经典的汉若塔问题,下回再讲!
阅读(2438) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~