![]() ![]() ![]() | recursion/alternative-fak-1.c - En variation af den rekursive fakultetsfunktionen - ala iteration nu med halerekursion. | Lektion 11 - slide 10 : 27 Program 4 |
#include <stdio.h> // Prototype unsigned long int iterative_factorial(unsigned int n, unsigned int i, unsigned long int result); unsigned long int factorial(unsigned int n){ return iterative_factorial(n, 1, 1); } unsigned long int iterative_factorial(unsigned int n, unsigned int i, unsigned long int result){ if (i <= n) return iterative_factorial(n, i + 1, result * i); else return result; } int main(void) { unsigned int k; // Upper limits of k: 12 (long is 4 bytes) // Upper limits of k: 20 (long is 8 bytes) for (k = 0; k <= 12; k++) printf("%-20lu %20lu\n", k, factorial(k)); return 0; }