/////////////////////////////////////////////////////////////// // POOJ 2005 - Linguagem de Programação Java - Prof Ismael // // Programa fatorial.java // // 0) Abrir o prompt do DOS // // 1)Compilar // %javac fatorial.java // ////////////////////////////////////////////////////////////// public class fatorial { public static void main(String arg[]) { if (arg.length < 2) { System.out.println("Sintaxe: java -cp . fatorial metodo n"); System.out.println(" metodo = R ==> Recursivo"); System.out.println(" L ==> Não Recursivo"); System.exit(0); } double p = 0; String method = arg[0]; long startTime = System.nanoTime(); for( int i=0; i<1000; ++i ) { if (method.equals("R")) { p = fatorialR(Integer.parseInt(arg[1])); } else if (method.equals("L")) { p = fatorialL(Integer.parseInt(arg[1])); } } long estimatedTime = (System.nanoTime() - startTime); System.out.println("Fatorial de "+arg[1]+": "+p+ " - tempo p/1000 iteracoes= "+estimatedTime/1000000.+" (ms)"); } public static int fatorialR(int fat) { if (fat <= 1) return 1; else return fat * fatorialR(fat-1); } public static int fatorialL(int fat) { int f = 1; for (int i=1;i<=fat;i++) f=f*i; return f; } }