Tutorial Playlist
132 Lessons1. Introduction to C Tutorial
2. Addition of Two Numbers in C
3. Anagram Program in C
4. Armstrong Number in C
5. Array in C
6. Array of Pointers in C
7. Array of Structure in C
8. C Program to Find ASCII Value of a Character
9. Assignment Operator in C
10. Binary Search in C
11. Binary to Decimal in C
12. Bitwise Operators in C
13. Boolean in C
14. C Compiler for Mac
15. C Compiler for Windows
16. C Function Call Stack
17. C Language Download
18. Operators in C
19. C/C++ Preprocessors
20. C Program for Bubble Sort
21. C Program for Factorial
Now Reading
22. C Program for Prime Numbers
23. C Program for String Palindrome
24. C Program to Reverse a Number
25. Reverse a String in C
26. C string declaration
27. String Input Output Functions in C
28. Calculator Program in C
29. Call by Value and Call by Reference in C
30. Ceil Function in C
31. Coding Vs. Programming
32. Command Line Arguments in C/C++
33. Comments in C
34. Compilation process in C
35. Conditional Statements in C
36. Conditional operator in the C
37. Constant Pointer in C
38. Constants in C
39. Dangling Pointer in C
40. Data Structures in C
41. Data Types in C
42. Debugging C Program
43. Convert Decimal to Binary in C
44. Define And include in C
45. Difference Between Arguments And Parameters
46. Difference Between Compiler and Interpreter
47. Difference Between If Else and Switch
48. Do While Loop In C
49. Double In C
50. Dynamic Array in C
51. Dynamic Memory Allocation in C
52. Enumeration (or enum) in C
53. Evaluation of Arithmetic Expression
54. Factorial of A Number in C
55. Features of C Language
56. Fibonacci Series Program in C Using Recursion
57. File Handling in C
58. For Loop in C
59. Format Specifiers in C
60. Functions in C
61. Function Pointer in C
62. goto statement in C
63. C Hello World Program
64. Header Files in C
65. Heap Sort in C Program
66. Hello World Program in C
67. History of C Language
68. How to compile a C program in Linux
69. How to Find a Leap Year Using C Programming
70. Identifiers in C
71. If Else Statement in C
72. If Statement in C
73. Implementation of Queue Using Linked List
74. Increment and decrement operators in c
75. Input and Output Functions in C
76. How To Install C Language In Mac
77. Jump Statements in C
78. Lcm of Two Numbers in C
79. Length of an Array in C
80. Library Function in C
81. Linked list in C
82. Logical Operators in C
83. Macros in C
84. Matrix multiplication in C
85. Nested if else statement in C
86. Nested Loop in C
87. One Dimensional Array in C
88. Operator Precedence and Associativity in C
89. Overflow And Underflow in C
90. Palindrome Program in C
91. Pattern Programs in C
92. Pointer to Pointer in C
93. Pointers in C: A Comprehensive Tutorial
94. Pre-increment And Post-increment
95. Prime Number Program in C
96. Program for Linear Search in C
97. Pseudo-Code In C
98. Random Access Files in C
99. Random Number Generator in C
100. Recursion in C
101. Relational Operators in C
102. Simple interest program in C
103. Square Root in C
104. Stack in C
105. Stack Using Linked List in C
106. Static function in C
107. Stdio.h in C
108. Storage Classes in C
109. strcat() in C
110. Strcmp in C
111. Strcpy in C
112. String Comparison in C
113. String Functions in C
114. String Length in C
115. String Pointer in C
116. strlen() in C
117. Structures in C
118. Structure of C Program
119. Switch Case in C
120. C Ternary Operator
121. Tokens in C
122. Toupper Function in C
123. Transpose of a Matrix in C
124. Two Dimensional Array in C
125. Type Casting in C
126. Types of Error in C
127. Unary Operator in C
128. Use of C Language
129. User Defined Functions in C
130. What is Variables in C
131. Is C language case sensitive
132. Fibonacci Series in C
A non-negative integer n’s factorial, symbolised by n! in mathematics, is the result of all positive integers below or equal to n. For example, the factorial of 5 is calculated as 5! = 5 x 4 x 3 x 2 x 1 = 120.
Calculating the factorial of a number is a common programming problem. In this article, we will explore various methods to implement the factorial program in the C programming language.
The algorithm for calculating the factorial of a number can be defined as follows:
Now, let's dive into different implementations of the factorial program in C.
In this method, we will calculate the factorial program in C using for loop. The for loop will iterate from 1 to the given number and multiply the result with the current number in each iteration.
#include <stdio.h> |
In the above code, we have defined a function factorial() that takes an unsigned integer n as input and returns the factorial of n. The main function prompts the user to enter a non-negative integer, calls the factorial() function, and displays the result.
Another way to find the factorial of a number is by using a factorial program in C while loop. The while loop will iterate until the number becomes zero and multiply the result with the current number in each iteration.
#include <stdio.h> |
In this code, the factorial() function uses a while loop to calculate the factorial. The loop continues until the value of n becomes 1, and in each iteration, it multiplies the result with n and decrements n by 1.
Recursion is a technique where a function calls itself. We can implement the factorial in C using recursion by defining a recursive function that calls itself with a smaller input value.
#include <stdio.h> |
In the above code, the factorial() function is defined recursively. If the input n is 0, it returns 1 (base case). Otherwise, it multiplies n with the factorial of n - 1, which is obtained by recursively calling the factorial() function.
The ternary operator ?: can be used to implement the factorial program concisely. The ternary operator evaluates a condition and returns one of two values based on the result.
#include <stdio.h> |
In this code, the factorial() function uses the ternary operator to check if n is 0. If it is, the function returns 1; otherwise, it multiplies n with the factorial of n - 1 obtained by calling the factorial() function recursively.
The tgamma() function is a built-in function in C that calculates the gamma function of a given argument. The gamma function is a generalisation of the factorial function for real and complex numbers. By utilising the tgamma() method, we can indirectly find the factorial of a number in a concise and efficient manner.
In this code, we utilize the tgamma() function from the math.h library to indirectly calculate the factorial of a non-negative integer. The tgamma() function calculates the gamma function for the argument n + 1. Since the gamma function is a generalization of the factorial function, evaluating tgamma(n + 1) for a non-negative integer n gives us the factorial value.
#include <stdio.h> |
In the above code, the factorial() function utilises the tgamma() function from the <math.h> header. The tgamma(n + 1) expression calculates the gamma function of n + 1, which is equivalent to the factorial of n.
In this implementation, we define a separate function to find factorial in c using function. The main function prompts the user to enter a non-negative integer, calls the factorial function, and displays the result.
#include <stdio.h> |
In this code, the factorial() function is defined separately above the main() function. It follows the implementation using a for loop, as explained earlier.
Pointers can be used to find the factorial of a number by passing the address of the result variable to the function.
#include <stdio.h> |
In this code, the factorial() function takes two arguments: the number n and a pointer to the result variable. Inside the function, we use the *result notation to access the value stored at the memory address pointed to by result.
Here’s how you can construct a C program to find factorial series:
#include <stdio.h> |
Here’s how this program works:
Note: The factorial function returns a long long because factorials can become very large very quickly. For example, the factorial of 20 is already larger than what can be stored in a 32-bit int.
Also, keep in mind that this program doesn't handle potential overflow issues when calculating factorials of large numbers, as long long can hold values up to 9223372036854775807 in C language (as of the C99 standard). This means that factorials of numbers greater than 20 will overflow and produce incorrect results.
For a complete solution, you might consider using arbitrary precision arithmetic libraries (like GMP) or implementing a similar feature in your code.
In this article, we explored various methods to calculate the factorial of a number in C. We discussed implementations using loops, recursion, and built-in functions. By understanding these different approaches, you can choose the method that best suits your needs and programming style.
Calculating factorials is a fundamental programming concept, and mastering it can enhance your problem-solving skills. Whether you prefer iterative solutions using loops or elegant recursive implementations, the choice is yours.
If you want to expand your C programming knowledge and explore more advanced topics, consider checking out the Executive PG Program in Software Development- Full Stack by upGrad. Their immersive learning approach can provide you with valuable insights and hands-on experience.
Happy learning and happy coding!
Q: How do I calculate the factorial of a number in C?
To calculate the factorial of a number in C, you can use various methods such as using loops, recursion, or built-in functions. Some common approaches include using a for loop, a while loop, or a recursive function. You can choose the method that best suits your needs and programming style.
Q: Can I calculate the factorial of a negative number in C?
No, the factorial is mathematically defined for non-negative integers only. In C, attempting to calculate the factorial of a negative number will not produce meaningful results. It's important to ensure that the input for factorial calculations is a non-negative integer.
Q: What is the maximum value for which I can calculate the factorial in C?
The maximum value for which you can accurately calculate the factorial in C depends on the data type you are using. For example, if you are using an unsigned int, the maximum factorial value you can calculate is limited by the maximum value that can be represented by the data type. If you exceed this limit, the result may overflow, leading to incorrect values.
Q: Which method is more efficient for calculating factorials in C: loops or recursion?
In general, iterative methods using loops, such as the for loop or the while loop, are often more efficient than recursive methods due to the overhead of function calls in recursion. However, for small input values, the difference in performance may not be significant. It's recommended to consider the simplicity and readability of the code along with performance when choosing a method.
PAVAN VADAPALLI
Director of Engineering
Director of Engineering @ upGrad. Motivated to leverage technology to solve problems. Seasoned leader for startups and fast moving orgs. Working …Read More
Popular
Talk to our experts. We’re available 24/7.
Indian Nationals
1800 210 2020
Foreign Nationals
+918045604032
upGrad does not grant credit; credits are granted, accepted or transferred at the sole discretion of the relevant educational institution offering the diploma or degree. We advise you to enquire further regarding the suitability of this program for your academic, professional requirements and job prospects before enrolling. upGrad does not make any representations regarding the recognition or equivalence of the credits or credentials awarded, unless otherwise expressly stated. Success depends on individual qualifications, experience, and efforts in seeking employment.
upGrad does not grant credit; credits are granted, accepted or transferred at the sole discretion of the relevant educational institution offering the diploma or degree. We advise you to enquire further regarding the suitability of this program for your academic, professional requirements and job prospects before enr...