For working professionals
For fresh graduates
More
5. Array in C
13. Boolean in C
18. Operators in C
33. Comments in C
38. Constants in C
41. Data Types in C
49. Double In C
58. For Loop in C
60. Functions in C
70. Identifiers in C
81. Linked list in C
83. Macros in C
86. Nested Loop in C
97. Pseudo-Code In C
100. Recursion in C
103. Square Root in C
104. Stack 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
114. String Length in C
115. String Pointer in C
116. strlen() in C
117. Structures in C
119. Switch Case in C
120. C Ternary Operator
121. Tokens in C
125. Type Casting in C
126. Types of Error in C
127. Unary Operator in C
128. Use of C Language
Factorial of a number is the product of all positive integers less than or equal to the number itself. For example, the factorial of 5 (represented as 5!) is 1 * 2 * 3 * 4 * 5 = 120. In this article, we will explore different methods to find the factorial of a number in C using various approaches, including iterative, recursive, and the use of functions.
If you want to download this tutorial in PDF format for further reading: Download Tutorial PDF
Iterative solutions are those that employ loops for solving problems. Let's understand how to calculate factorials using iterative solutions.
The 'for' loop is one of the most common iterative solutions in C programming. It iterates over a block of code a certain number of times. Here is how we can find the factorial of a number in C using a 'for' loop.
#include<stdio.h> |
In the above code, we initialize factorial to 1 and iterate from 1 to number. For each iteration, we multiply the current factorial with the iterator i and update the factorial.
Another popular loop in C programming is the 'while' loop. Let's see how we can leverage the 'while' loop to find the factorial of a number.
#include<stdio.h> |
In the 'while' loop, we decrement the number in every iteration until it is greater than 1. Meanwhile, we multiply factorial with a number.
In recursive solutions, a function calls itself until a base condition is met. Recursive methods can be handy for solving problems such as finding the factorial of a number.
Here is how we can find the factorial of a number in C using recursion.
#include<stdio.h> |
In the above code, the factorial function calls itself with number-1 until the number is greater or equal to 1. For each recursive call, the function returns the product of the number and factorial(number-1). If the number is less than 1, it returns 1, which is the base case for factorial calculation.
A ternary operator can be used to find the factorial of a number using a recursive method. It works as a short form for an 'if-else' statement.
#include<stdio.h> |
In this code, the ternary operator checks if the number is greater or equal to 1, if true, it returns the product of the number and factorial(number-1); otherwise, it returns 1.
The algorithm for a factorial program in C typically follows these steps:
In C, the tgamma function provides the Gamma function, which is essentially (number-1)!. We can use this function to easily calculate factorials.
#include <stdio.h> |
In the code above, we prompt the user to enter a number, read it using scanf(), and then calculate the factorial using tgamma(number + 1). The tgamma() function is applied to (number + 1) to calculate the factorial of a number. The result is then printed using printf().
We can define a separate function for calculating factorial and call this function whenever we need to find the factorial of a number in C using function.
#include<stdio.h> |
In this code, we have a separate function factorial, which calculates and returns the factorial of the given number.
Pointers in C can also be used to calculate the factorial of a number. Here's how you can do it:
#include<stdio.h> |
In this code, we pass a pointer fact to the factorial function. Inside the function, we calculate the factorial and update the value pointed by the fact pointer.
A factorial series is a sequence of factorial values. Here's how we can print a factorial series using C.
#include<stdio.h> |
In this program, we calculate and print the factorial of all numbers from 0 to the given number.
There are multiple methods to calculate the factorial of a number in C. Whether it's using an iterative solution, recursion, the tgamma() method, or pointers, the most suitable method will depend on the specific needs of your program. It's a good idea to be familiar with each approach as they all reinforce key concepts in C programming.
To further enhance your programming and coding skills and build a successful career in the field, consider exploring upGrad's Data Science and Analytics Bootcamp. They have comprehensive courses that are ideal for every skill level, ensuring that you get a grasp of all the concepts hands-on.
1. What is the time complexity of the factorial function using recursion?
The time complexity of the factorial function implemented using recursion is linear, denoted as O(n). This is because the function makes n recursive calls, each of which involves a constant amount of work.
2. Why is the initial value of 'factorial' set to 1 in the for loop and while loop examples?
The initial value of 'factorial' is set to 1 because the factorial of 0 is 1, and multiplication with 0 would result in the factorial being 0 for all numbers.
3. What is the purpose of the 'tgamma()' function in C?
The 'tgamma()' function in C returns the gamma function of a number. For positive integers, the gamma function of a number is equal to the factorial of (number-1). We add 1 to our number before passing it to 'tgamma()' to find the factorial.
4. Is there a difference in performance between the iterative and recursive solutions for finding the factorial of a number in C?
Yes, the recursive solution can be slower and more memory-intensive than the iterative one, especially for large input values. This is because each recursive call adds a new layer to the system's call stack. In comparison, the iterative solution only requires a single loop and does not add to the call stack.
5. Can the factorial of a negative number be calculated?
The factorial function is only defined for non-negative integers. So, technically, you cannot find the factorial of a negative number. If you try to calculate it, you should return an error or a special value to indicate that the input is invalid.
Take a Free C Programming Quiz
Answer quick questions and assess your C programming knowledge
Author
Start Learning For Free
Explore Our Free Software Tutorials and Elevate your Career.
Talk to our experts. We are available 7 days a week, 9 AM to 12 AM (midnight)
Indian Nationals
1800 210 2020
Foreign Nationals
+918045604032
1.The above statistics depend on various factors and individual results may vary. Past performance is no guarantee of future results.
2.The student assumes full responsibility for all expenses associated with visas, travel, & related costs. upGrad does not provide any a.