AOJ 0019 Factorial

リンク AOJ 0019 Factorial

方針

階乗は再起的な計算になるので、再帰で書きました。
 4! = 4 \times 3! 4の階乗を計算するためには、3の階乗の値がほしい。
  3! = 3 \times 2! 3の階乗を計算するためには、2の階乗の値がほしい。
   2! = 2 \times 1! 2の階乗を計算するためには、1の階乗の値がほしい。
    1! = 1 1の階乗は1である。
再帰関数の返り値は、自分自身の返り値(うまく説明できなくて申し訳ないですが)であることを利用します。
動的計画法とか、分割統治法とか、そういう感動する方法もありますが、まずは再帰をきちんと理解して書く能力を身に付けたいです。

ソース

import java.util.*;
public class Main {
    static Scanner sc = new Scanner(System.in);
    static int n;
    public static void main(String[] args) {
        while(read()){
            System.out.println(solve(n));
        }

    }
    static boolean read(){
        if(!sc.hasNext())return false;
        n = sc.nextInt();
        return true;
    }

    static long  solve(int in){
        if(in == 1)return 1;
        return solve(in - 1)*in;
    }
}