// clase con métodos de clase y ejemplos de recursividad public class Factorial { // Factorial iterativo public static long factIterativo(int n) { long fact=1; if (n>1) for(int i=n; i>1; i--) fact*=i; return fact; } public static long factRecursivo(int n) { /*long fact=1; if ((n==0) || (n==1)) // Forma larga de factorial return fact; else { fact=n*factRecursivo(n-1); return fact; }*/ if ((n==0) || (n==1)) return 1; return n*factRecursivo(n-1); } } class AplicaFactorial { public static void main (String as[]) { Factorial f = new Factorial(); System.out.println("Factorial iterativo: "+Factorial.factIterativo(5)); long fact=f.factRecursivo(5); // Un método de clase puede ser invocado por la clase o por un objeto System.out.println("Factorial recursivo: "+fact); } }