public class jjjj {
int pp(int n)
{
if(n<2)
return 1*n
else
return n*pp(n-1)
}
public static void main(String args[])
{
jjjj b=new jjjj()
int d=b.pp(5)
System.out.print(d)
}
}
整个程序的核心就是int pp(int n)
{
if(n<2)
return 1*n
else
return n*pp(n-1)
}
这一段, 如果n大于2,返回n*pp(n-1)的意思,就是,任何一个N的阶乘等于n*比n小1的数的阶乘,打个比方,比如5的阶乘等于5*(4的阶乘),4的阶乘等于4*(3的阶乘),而1的阶乘,等于1本身。
1、首先要理解一下阶乘的公式:
n! =n*(n-1)*(n-2)*....*2*1, 5! = 5*4*3*2*1
#include //头文件stdio.h在新浪博客中无法显示加上就可以了
int main()
{
int t=5,i=4 //要是求其他的数的阶乘的话,把t的值改为其他数,
//再把i改为(t-1)就行了
while(i>=1)
{
t=t*i
i--
}
printf("5的阶乘结果是:%d\n",t)
return 0
}
2、运行结果如下:
3、上面这种方法虽然能求出结果,但是不能求任意的数,也没有考虑到0!=1,这种情况,我们来改进一下;
#include // //头文件stdio.h在新浪博客中无法显示加上就可以了
int main()
{
int n,jc
int jiecheng(int j)
printf("请输入任意一个整数\n")
scanf("%d",&n)
jc=jiecheng(n)
printf("该数的阶乘结果是:%d\n",jc)
return 0
}
int jiecheng(int j)
{
int i=j-1
if(j==0 | j==1) // 因为0的阶乘是1 ,1的阶乘也是1
j=1
while(i>1) //
{
j=j*i
i--
}
return(j)
}
4、运行结果如下:
用Java求键盘输入的数的阶乘n。(递归算法)packagejiechengimportjava.util.* //导入java.util包中的所有类classrep{ publiclongrep(intn){ longi=0if(n==0||n==1) i=1
elsi=n*rep(n-1) returni} } publicclassJie { publicstaticvoidmain(String[] args) { intn //此处定义要输入的数Scanner s = newScanner(System.in) //以下三行用于n的值得输入System.out.print( "请输入一个整数:")n = s.nextInt()rep f= newrep()System.out.println(n+"!="+f.rep(n))} }
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
发展历程:20世纪90年代,硬件领域出现了单片式计算机系统,这种价格低廉的系统一出现就立即引起了自动控制领域人员的注意,因为使用它可以大幅度提升消费类电子产品(如电视机顶盒、面包烤箱、移动电话等)的智能化程度。
Sun公司为了抢占市场先机,在1991年成立了一个称为Green的项目小组,帕特里克、詹姆斯·高斯林、麦克·舍林丹和其他几个工程师一起组成的工作小组在加利福尼亚州门洛帕克市沙丘路的一个小工作室里面研究开发新技术,专攻计算机在家电产品上的嵌入式应用。