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

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

第1个回答  2020-04-22

方法和分析见下文:


分析

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);//进行递归,求解阶乘结果

}

本回答被网友采纳
第2个回答  2020-04-22
String str="输入一个数n,将计算zdn的阶乘";

str=JOptionPane.showInputDialog(null, str);
int n=Integer.parseInt(str);//获得内输入的数n并转成整数容

int s=1;//计算n的阶乘
for(int i=1;i<=n;i++)
{
s*=i;
}
JOptionPane.showMessageDialog(null, s+"", "n的阶乘", 1);

Java 编写一个方法,求一个数的阶乘。 n!=1×2×3×...×n,比如3!=1*...
分析 1、确定基本要求,应作为方法的限定条件或特殊情况处理 (1)规定:0!=1 (2)规定:n!中n非负 2、确定逻辑:阶乘是比较适合递归的思路,因为n!=n*(n-1)!,直到求解1!作为结束 代码(因为不太熟悉java,可能还需要题主进行微调)long Factorials(int n){ if(n<0) return -1;\/\/主...

Java编写一个方法,求一个数的阶乘。 n!=1×2×3×...×n,比如3!=1*2...
public static void main(String[] args){ for(int i=1;i<7;i++)System.out.printf("%d!=%d%n",i,Factorial(i));} static long Factorial(int n){ long r=1;while(n>0)r*=n--;return r;} }

用Java 求8的阶乘 怎么求
使用非递归求解n的阶乘 param n--参数,被计算的阶乘 return 返回n的阶乘计算出来的结果 \/ public int doFactorial2(int n){ int result=1;\/\/结果 if(n<0){\/\/传入的n不合法 return -1;\/\/返回-1,说明参数不合法 } if(n==0){\/\/0!=1 return 1;} for(int i=1;i<=n;i++){\/\/...

java怎么写求阶乘?
long int i,k=1;for(i=1;i<=x;i++)k=k*i;return k;} int main(){ long int j,k=0;int i;for(i=1;i<=20;i++){ j=jiecheng(i);k+=j;} printf("%ld\\n",k);} 输出的结果是2561327494111820313

用JAVA 编程方法“ 求出1~10的阶乘”
private JTextArea output;private BigInteger cal(String input){ \/\/计算方法cal BigInteger result=BigInteger.ONE;BigInteger max=new BigInteger(input);for(BigInteger i=BigInteger.ONE;max.compareTo(i)!=-1;i=i.add(BigInteger.ONE))result=result.multiply(i);return result;} public JieCheng(){...

在java中,用递归方法计算n的阶乘。
用Java求键盘输入的数的阶乘n。(递归算法)packagejiecheng; importjava.util.*; \/\/导入java.util包中的所有类classrep{ publiclongrep(intn){ longi=0; if(n==0||n==1) i=1;elsi=n*rep(n-1) returni; } } publicclassJie { publicstaticvoidmain(String[] args) { intn; ...

...程序自用计算n!,并输出。(注:n!=1*2*3*...n)
import java.io.InputStream;public class Digui { \/ param args \/ public static void main(String[] args) { byte[] b = new byte[32];while (true) { try { System.out.println("请输入正整数,获取其阶乘,输入over结束");System.in.read(b);String res = new String(b).trim();i...

用java递归算法求一个数字的阶乘
1、采用自顶向上的递归方法,代码如下:import java.util.Scanner;public class Test {@SuppressWarnings("resource")public static void main(String[] args) {\/\/ 从控制台输入一个整数Scanner in = new Scanner(System.in);int b = in.nextInt();\/\/ 声明一个Test对象,调用cal方法获得结果Test ...

用JAVA 编程方法“ 求出1~10的阶乘”
1*2*3 一个实现1*2+1*2*3 public static int sumadd(int m){ if (m==1){ return 1;} else { return m*sumadd(m-1);\/\/递归调用实现1*2*3*4 } } public static int sum(int n){ if (n==1){ return 0;} return sumadd(n)+sum(n-1);\/\/递归调用实现1*2+1*2*3 ...

用java编写计算N的阶乘
class Factorial{ private long sum;Factorial(int x){ sum=1;for(int n=1;n<=x;n++){ sum*=n;} } public static void main(String[] args){ Factorial obj=new Factorial(3);System.out.println("3的阶乘为:"+obj.sum);} } ...

相似回答