Java递归实现阶乘

Posted no樂on:http://9dmraa.coding-pag

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java递归实现阶乘相关的知识,希望对你有一定的参考价值。

import java.util.Scanner;

public class Factorial {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n;

        while (true) {
            System.out.print("请输入一个正整数(输入0退出循环):");
            try {
                n = sc.nextInt();
            } catch (Exception e) {
                System.out.println("错误的类型!");
                sc.nextLine();
                continue;
            }
            if (n == 0) {
                break;
            }
            System.out.printf("%d! = %d
", n, fact(n));
        }

        System.out.println("再见!");
    }

    private static long fact(int n) {
        if (n < 0) {
            System.out.println("错误的数值范围!");
            return -1;
        } else {
            return factorial(n);
        }
    }

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

 

Java递归实现阶乘

以上是关于Java递归实现阶乘的主要内容,如果未能解决你的问题,请参考以下文章

递归算法之阶乘代码实现与非递归实现

2018.3.31 java中的递归

[Java]函数求阶乘n!(factorial)(四种方法)

java使用递归实现树形结构

递归--求n!的阶乘结果

基于el-menu,用递归实现动态n级菜单