递归-如何获取不带小数的整数

时间:2018-09-05 00:51:17

标签: java recursion double

import java.util.*;
// Algorithm and Java program to find a Factorial of a number using recursion

public class factorial {
    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);
        System.out.println("Please enter a number: ");

        int n = input.nextInt();
        System.out.println("The factorial of " + n + " is " + factorial(n));

    }

    private  static double factorial (int n)
    {
        if (n == 1)
            return 1;
        else
            return n * factorial(n - 1);
    }
}

请输入一个数字: 8 8的阶乘为40320.0

进程完成,退出代码为0 如何获得不带小数的整数?

2 个答案:

答案 0 :(得分:1)

您可以通过调用以下方法获取int值或Double值:

Double n = new Double(40320.99);
int i = n.intValue();

您可以直接打印结果为intDouble Value数据类型。

答案 1 :(得分:0)

替换

System.out.println("The factorial of " + n + " is " + factorial(n));

作者

System.out.println("The factorial of " + n + " is " + (int) factorial(n));

OR (更好的方式)

替换

private static double factorial (int n)

作者

private static int factorial(int n)


说明

由于您的方法返回一个double,因此您需要将其转换为int,后者不带小数位。您可能想要查看Math类的方法,例如round()floor()等。