AOJ 0019 Factorial
方針
階乗は再起的な計算になるので、再帰で書きました。
4の階乗を計算するためには、3の階乗の値がほしい。
3の階乗を計算するためには、2の階乗の値がほしい。
2の階乗を計算するためには、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; } }