C语言程序 求n的阶乘(n !)---- 递归法
的有关信息介绍如下:程序调用自身称为递归( recursion).它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解.
递归的能力在于用有限的语句来定义对象的无限集合。
一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。
ubuntu 14.04 linux c
gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2
#include
#include
#include
long factorial(int n)
{
if(n == 1)
return 1;
else
return n*factorial(n-1);
}
int main(int argc,char *argv[])
{
int n = 0;
if(argc != 2)
{
printf("input error,exit!!\n");
return -1;
}
n = atoi(argv);
printf("%d! = %ld\n",n,factorial(n));
return 0;
}
root@linux:~/code# gcc -o factorial factorial.c
root@linux:~/code# ./factorial 6
6! = 720