fork download
  1. #include <stdio.h>
  2.  
  3. char* ans[] =
  4. {
  5. /* 0 */ "1",
  6. /* 1 */ "1",
  7. /* 2 */ "2",
  8. /* 3 */ "6",
  9. /* 4 */ "24",
  10. /* 5 */ "120",
  11. /* 6 */ "720",
  12. /* 7 */ "5,040",
  13. /* 8 */ "40,320",
  14. /* 9 */ "362,880",
  15. /* 10 */ "3,628,800",
  16. /* 11 */ "39,916,800",
  17. /* 12 */ "479,001,600",
  18. /* 13 */ "6,227,020,800",
  19. /* 14 */ "87,178,291,200",
  20. /* 15 */ "1,307,674,368,000",
  21. /* 16 */ "20,922,789,888,000",
  22. /* 17 */ "355,687,428,096,000",
  23. /* 18 */ "6,402,373,705,728,000",
  24. /* 19 */ "121,645,100,408,832,000",
  25. /* 20 */ "2,432,902,008,176,640,000"
  26. };
  27.  
  28. void factorial(int n)
  29. {
  30. printf("facorial(%d) = ", n);
  31.  
  32. if(n < 0 || n > 20) /* Error checking */
  33. {
  34. printf("ERROR: Number out of range\n");
  35. }
  36. else
  37. {
  38. printf("%s\n", ans[n]);
  39. }
  40.  
  41. }
  42.  
  43. int main(int argc, char* argv[])
  44. {
  45. int i;
  46. for(i = -1; i<=21; factorial(i++));
  47. return 0;
  48. }
Success #stdin #stdout 0s 2248KB
stdin
Standard input is empty
stdout
facorial(-1) = ERROR: Number out of range
facorial(0) = 1
facorial(1) = 1
facorial(2) = 2
facorial(3) = 6
facorial(4) = 24
facorial(5) = 120
facorial(6) = 720
facorial(7) = 5,040
facorial(8) = 40,320
facorial(9) = 362,880
facorial(10) = 3,628,800
facorial(11) = 39,916,800
facorial(12) = 479,001,600
facorial(13) = 6,227,020,800
facorial(14) = 87,178,291,200
facorial(15) = 1,307,674,368,000
facorial(16) = 20,922,789,888,000
facorial(17) = 355,687,428,096,000
facorial(18) = 6,402,373,705,728,000
facorial(19) = 121,645,100,408,832,000
facorial(20) = 2,432,902,008,176,640,000
facorial(21) = ERROR: Number out of range