Java再帰実装階乗

3204 ワード

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再帰実装階乗