导航:首页 > 编程语言 > java递归n的阶乘

java递归n的阶乘

发布时间:2022-09-02 17:03:49

❶ 用java写一个递归计算N的阶乘。并根据0! = 1。输入n的值,然后输出出N!值

importjava.util.Scanner;

/**
*@authoryoung
*@Description:用递归和非递归算阶乘
*@date2016年6月14日上午8:29:47
*/
publicclassFacTest{
//递归
publicstaticintfactorial(intm){
if(m<0){
return0;
}
elseif(m==1){
return1;
}
else{
returnm*factorial(m-1);
}
}

//非递归
publicstaticintnoFactorial(intm){
if(m<0){
return0;
}elseif(m==1){
return1;
}else{

intsum=1;
for(inti=2;i<=m;i++)
sum=sum*i;
returnsum;
}

}
publicstaticvoidmain(String[]args){
Scannerscanner=newScanner(System.in);
System.out.print("输入一个数N:");
intn=scanner.nextInt();
System.out.println("它的阶乘为(递归):"+factorial(n));
System.out.println("它的阶乘为(非递归):"+noFactorial(n));
}
}

❷ Java 编写一个方法,求一个数的阶乘。 n!=1×2×3×...×n,比如3!=1*2*3=6

方法和分析见下文:


分析

1、确定基本要求,应作为方法的限定条件或特殊情况处理

(1)规定:0!=1

(2)规定:n!中n非负


2、确定逻辑:

阶乘是比较适合递归的思路,因为n!=n*(n-1)!,直到求解1!作为结束


代码(因为不太熟悉java,可能还需要题主进行微调)


long Factorials(int n)

{

if(n<0) return -1;//主要为了表示错误,题主可以自定义

if(n==1||n==0) return 1;//0!是特殊约定,1!是作为递归的结束

else return n*Factorials(n-1);//进行递归,求解阶乘结果

}

❸ java怎么用递归写N的阶乘

public class Fac {
public int fac(int n) {
return n <= 1 ? 1 : n * fac(n - 1);
}
}
这个比较简单、普遍,有一定限制,给你作参考

❹ 求一个用java代码写出一个 用递归函数实现一个n的阶乘 要求n是从键盘上输入

importjava.util.Scanner;

publicclassFactorial{
publicstaticvoidmain(String[]args){
Scannersc=newScanner(System.in);
System.out.print("请输入n:");
longn=Long.parseLong(sc.nextLine());
System.out.println(getFac(n));
}

publicstaticlonggetFac(longn){
if(n==1){
return1;
}
returngetFac(n-1)*n;
}
}

❺ 用java程序写一个用递归和非递归方法求n的阶乘

递归
public int factorial(int m)
{
if (m < 0)
return 0;
else if ( m == 1)
reteurn 1;
else if (m > 1)
return m * factorial(m-1);
}

public int factorial(int m)
{
if (m < 0)
return 0;
else if ( m == 1)
reteurn 1;
else if (m > 1)
{
int sum = 1
for (int i = 2; i <= m; i++)
sum = sum * i;
return sum;

}
}

❻ java n的阶乘

无语

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本身。

❼ 用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

❽ java输入一个数n,计算n的阶乘(5的阶乘=1*2*3*4*5)

1、首先要理解一下阶乘的公式:

n!=n*(n-1)*(n-2)*....*2*1,5!=5*4*3*2*1

#include//头文件stdio.h在新浪博客中无法显示加上就可以了

intmain()

{

intt=5,i=4;//要是求其他的数的阶乘的话,把t的值改为其他数,

//再把i改为(t-1)就行了

while(i>=1)

{

t=t*i;

i--;

}

printf("5的阶乘结果是:%d ",t);

return0;

}

2、运行结果如下:

❾ java如何用递归实现数字的阶乘呢

public static int jiecheng(int n)
{
if (n ==1)
{
return 1;
}
else
{
return jiecheng(n - 1) * n;
}
}
然后调用jiecheng这个方法,输出jiecheng(n).............n数字自己取

阅读全文

与java递归n的阶乘相关的资料

热点内容
怎么把多个word合并成一个pdf 浏览:542
电学基础pdf 浏览:726
cad插件怎么编译 浏览:617
网校源码软件 浏览:667
思科常用配置命令 浏览:377
水容易被压缩吗 浏览:753
java项目试题 浏览:315
为什么安卓拍照没有苹果成相快 浏览:516
安卓版的苹果手机叫什么 浏览:373
手机怎么解压文件夹压缩包 浏览:459
起源任务咋解压 浏览:976
加密式的监督检查 浏览:549
光遇怎么分辨安卓国服和渠道服 浏览:242
ico解压教程 浏览:632
程序员偏右 浏览:17
超算上可以进行vasp编译嘛 浏览:174
北京通app怎么注册登录 浏览:820
iphone上的数据怎么转移到安卓 浏览:743
python求每个时段平均值 浏览:244
安卓手机右上出现Hg什么意思 浏览:69