fork(5) download
  1. #include <stdio.h>
  2.  
  3. long long unsigned silnia_iter(unsigned);
  4. long long unsigned silnia_rekur(unsigned);
  5.  
  6. int main(int argc, char* argv[])
  7. {
  8. printf("%I64u\n", silnia_iter(0));
  9. printf("%I64u\n", silnia_iter(1));
  10. printf("%I64u\n", silnia_iter(2));
  11. printf("%I64u\n", silnia_iter(5));
  12.  
  13. printf("%I64u\n", silnia_rekur(0));
  14. printf("%I64u\n", silnia_rekur(1));
  15. printf("%I64u\n", silnia_rekur(2));
  16. printf("%I64u\n", silnia_rekur(5));
  17.  
  18. return 0;
  19. }
  20.  
  21. long long unsigned silnia_iter(unsigned n)
  22. {
  23. if (n < 0)
  24. {
  25. return -1;
  26. }
  27. else
  28. {
  29. long long unsigned silnia = 1;
  30. size_t i;
  31.  
  32. for (i = 1; i <= n; i++)
  33. {
  34. silnia *= i;
  35. }
  36.  
  37. return silnia;
  38. }
  39. }
  40.  
  41. long long unsigned silnia_rekur(unsigned n)
  42. {
  43. if (n < 0)
  44. {
  45. return -1;
  46. }
  47. else if (n < 2)
  48. {
  49. return 1;
  50. }
  51. else
  52. {
  53. return n*silnia_rekur(n-1);
  54. }
  55. }
Success #stdin #stdout 0s 2156KB
stdin
Standard input is empty
stdout
                                                               1
                                                               1
                                                               2
                                                             120
                                                               1
                                                               1
                                                               2
                                                             120