输入一个数字 计算乘阶5!=5*4*3*2*1要求用 java 基础知识编写。

如题所述

第1个回答  2016-06-27
public class Test7 {
    public static void main(String[] args) {
        System.out.println(factorial(3));
    }
    
    public static long factorial(int i) {
        if(i>1) return i*factorial(i-1);
        else return 1;
    }
}

追问

就用普通的写写是怎样的

追答public class Test7 {
    public static void main(String[] args) {
        System.out.println(factorial(2));
    }
    
    public static long factorial(int i) {
        long result = 1;
        if(i>1) {
            for(int j=i;j>0;j--) {
                result *= j;
            }
        }
        return result;
    }
}

追问

System.out.println(factorial(2));

这个是什么

public static long factorial(int i) {

还有这个

追答

调下面写的阶乘方法
把功能封装成一个方法

追问

用的long?
我们还不会用long

追答

long比int大,防溢出

追问

不用long在打一遍看看

本回答被提问者采纳
第2个回答  2016-06-27
我给你写个阶乘函数把:
int f(int n){
    int result=1;
    for(int i=1;i<=n;i++){
        result*=i;
    }
    return result;
}

第3个回答  2016-06-27
public int fact(int num){
    if(num == 1)
        return 1;
    return num*fact(num-1);
}

追问

这个看不懂

追答

那就没办法了,这最基础了。。 

就是5!分解为

1、5!= 5*4!

2、4!= 4*3!

3、3!= 3*2!

4、2!= 2*1!

当num=1的时候,就返回1。

然后通过1的结果,逆推回

1、2!= 2*1! = 2

2、3!= 3*2! =3*2=6

3、4!= 4*3! =4*6=24

4、5!= 5*4! =24*5 =120


写个最最基础的吧 

public class Test{ 
    public static void main(String[] args) { 
      Scanner in = new Scanner(System.in); 
      System.out.print("请输入数字:"); 
        int num = in.nextInt();
        long result = 1 ;  
      for(int i = 1;i <= num;i++){
        result *= i;
      }
      System.out.println(result);
   } 
}

本回答被网友采纳
相似回答