1. 程式人生 > 其它 >18、遞迴

18、遞迴

遞迴

public class MethodDemo09 {
    //2! 2*1
    //3! 3*2*1
    //5! 5*4*3*2*1
    public static void main(String[] args) {
        MethodDemo09 demo09 = new MethodDemo09();
        int result = demo09.recursion(5);
        System.out.println(result);
    }

    public int recursion(int n) {
        if ( n == 1 ) {
            return 1;
        } else {
            return n * recursion(n-1);
        }
    }
}

用for迴圈求階乘

public class MethodDemo10 {
    public static void main(String[] args) {
        MethodDemo10 demo10 = new MethodDemo10();
        demo10.recursion();
    }

    //用for迴圈求階乘
    public void recursion() {
        Scanner sc = new Scanner(System.in);
        System.out.println("請輸入一個整數:");
        int num = sc.nextInt();
        if ( num == 1 ) {
            System.out.println(num + "的階乘為:1");
            return;
        }
        int result = 1;
        for ( int i = 2; i <= num; i++ ) {
            result = result * i;
        }
        System.out.println(num + "的階乘為:" + result);
    }
}

當輸入的數為 1 時:

當輸入的數為 2 時: