/* 
   Algoritmos e Estruturas de Dados II - 2004
   fact.c
   Versão 0.9; 14/4/2004
*/

#include <stdio.h>

int fact(int n) {
  int i = 1;
  int r = 1;
  for (i = 1; i <= n; i = i+1)
    {
      r = r * i;
    }
  return r;
}

int factr(int n) {
  if (n <= 0) 
    return 1;
  else
    return n * (factr(n - 1));
}

int main()
{
  int x;
  printf("Introduza um número: ");
  scanf("%d", &x);
  printf("%d! = %d\n",x,fact(x));
  printf("%d! = %d\n",x,factr(x));
}


