递归阶乘算法
① c语言怎么用递归调用函数的方法求n的阶乘
1、打开VC6.0软件,新建一个C语言的项目:

② 阶乘计算公式
阶乘的主要公式:

(2)递归阶乘算法扩展阅读:
阶乘(factorial)是基斯顿·卡曼(Christian Kramp, 1760 – 1826)于1808年发明的运算符号。阶乘,也是数学里的一种术语。阶乘指从1乘以2乘以3乘以4一直乘到所要求的数。
另外,数学家定义,0!=1,所以0!=1!通常我们所说的阶乘是定义在自然数范围里的,小数没有阶乘,像0.5!,0.65!,0.777!都是错误的。
但是,有时候我们会将Gamma函数定义为非整数的阶乘,因为当x是正整数n的时候,Gamma函数的值是n-1的阶乘。
③ 用递归的方法计算,计算正整数5的阶乘
#include "stdio.h"
int prime(int n)
{
if(n>1)
return n*prime(n-1);
else
return 1;
}
int main()
{
int o;
for(o=1;o<=10;o++)
printf("%d!=%d ",o,prime(o));
}
④ 阶乘的计算方法
正整数阶乘指从 1 乘以 2 乘以 3 乘以 4 一直乘到所要求的数。例如所要求的数是 4,则阶乘式是 1×2×3×4,得到的积是 24,24 就是 4 的阶乘。 例如所要求的数是 6,则阶乘式是 1×2×3×……×6,得到的积是 720,720 就是 6 的阶乘。例如所要求的数是 n,则阶乘式是 1×2×3×……×n,设得到的积是 x,x 就是 n 的阶乘 。

⑤ 求阶乘n!的递归算法
#include<stdio.h>
int fun(int n)
{
if(n==1||n==0) return 1;//如果参数是0或者1返回1
return n*fun(n-1);//否则返回n和下次递归的积
}
int main()
{
int n;
scanf("%d",&n);
printf("%d\n",fun(n));
return 0;
}
/*
5
120
*/
【递归算法的原理】
递归是计算机科学的一个重要概念,递归的方法是程序设计中有效的方法,采用递归编写
递归能使程序变得简洁和清晰。
⑥ C语言怎么用递归法求阶乘
1、首先打开vc6.0,新建一个vc项目。

⑦ 用java递归算法求一个数字的阶乘
用递归算法求一个数字的阶乘的程序如下:
public class JieCheng {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("请输入一个整数:");
int n = in.nextInt();
System.out.println(n+"!="+f(n));
}
static long f(int n){
if (n==1) return 1;
else return n*f(n-1);
}
}
运行结果:
请输入一个整数:6
6!=720
⑧ c语言递归求阶乘
举例:用递归方法求n;
#include<stdio.h>
int main()
{
int n;
int y;
printf("input a integer number:");
scanf("%d",&n);
y=fac(n);
printf("%d!=%d ",n,y);
return 0;
}
int fac(int n)
{
int f;
if(n<0)
printf("n<0,data error!");
else if(n==0||n==1)
f=1;
else
f=fac(n-1)*n;
return(f);
}

(8)递归阶乘算法扩展阅读:
return用法:
return返回一个数值的意思就是把return<表达式>后面表达式的值返回给调用他的函数。举个例子:
int sum(int i,int j)
{
return i+j;
printf("这个语句不会被执行,因为该子函数执行到上面的return语句就无条件结束了");
}
main()
{
int a=10,b=11,c;
c=sum(a,b);
printf("%d",c);
}
程序的输出为:
21
这个21从何而来呢main函数调用sum(a,b)函数时将a的值赋给i,b的值赋给j,上面说了return i+j;会计算i+j的值也就是结果等于21,并将21带回给调用它的函数,即c=sum(a,b);相当于c=21,这个21就是由sum(a,b)中的return反回来的。
