Tilbage til slide -- Tastaturgenvej: 'u'  forrige -- Tastaturgenvej: 'p'  næste -- Tastaturgenvej: 'n'          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;
}