方法和分析见下文:
分析
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!=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);} } ...