class RekursjonFakultet { public static void main(String[] args) { // Tester 5!, 4! og 1! testFakultet(5, fakultet(5), 120); testFakultet(4, fakultet(4), 24); testFakultet(1, fakultet(1), 1); testFakultet(0, fakultet(0), 1); } // Vi vet at 5! = 5*4*3*2*1 = 5 * 4! = 5*4 * 3! = 5*4*3 * 2! = 5*4*3*2 * 1! = 5*4*3*2*1 static int fakultet(int tall) { if (tall <= 1) { // Basistilfelle return 1; } // Rekursivt kall, n! = n * (n-1)! return tall * fakultet(tall-1); } // Liten testmetode for fakultet, printer om resultatet var forventet eller ikke static void testFakultet(int tall, int resultat, int forventet) { System.out.print("Testet " + tall + "! : "); if (resultat == forventet) { System.out.println(resultat + " - OK"); } else { System.out.println("FEIL - fikk " + resultat + " istedenfor " + forventet); } } }