java计算排列组合C(n,m)

java计算m选n的组合C(n,m).计算公式是:m!/n!(m-n)其中n!=123*...n,m!=123...*m要求能捕获输人的数字格式异常(NumberFormatException),输入数据不是正整数时则报“输入数据格式不对,请重新输入”。

基于Monster 组和GPT的调写:

public class Main {



        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            try {
                System.out.print("请输入m的值:");
                int m = Integer.parseInt(scanner.next());
                System.out.print("请输入n的值:");
                int n = Integer.parseInt(scanner.next());
                if (m <= 0 || n <= 0 || m < n) {
                    System.out.println("输入数据不符合要求,请重新输入");
                    return;
                }
                int result = factorial(m) / (factorial(n) * factorial(m - n));
                System.out.println("C(n,m) = " + result);
            } catch (NumberFormatException e) {
                System.out.println("输入数据格式不对,请重新输入");
            }
        }

        private static int factorial(int n) {
            int result = 1;
            for (int i = 1; i <= n; i++) {
                result *= i;
            }
            return result;
        }
    }