Given an integer N, find its factorial.
Example 1:
Input: N = 5
Output: 120
Explanation : 5! = 1*2*3*4*5 = 120
Example 2:
Input: N = 10
Output: 3628800
Explanation :
10! = 1*2*3*4*5*6*7*8*9*10 = 3628800
To solve this question click here:(https://practice.geeksforgeeks.org/problems/factorials-of-large-numbers2508/1#);
Asked in companies like Adobe, BrowserStack, MakeMyTrip, Microsoft, Philips, Samsung
It is a MEDIUM LEVEL question, you must have calculated factorial of a number. But this question is a bit different, in this we have to calculate factorial of a large number.
Factorial of large numbers cannot be stored in int or long or long long. So in this case we use ArrayList or LinkedList to solve the question.
JAVA CODE
static ArrayList<Integer> factorial(int N){
//code here
ArrayList<Integer> res=new ArrayList<>();
res.add(0,1); //adding 1 in the arraylist
int size=1;
int carry=0,val=2;
while(val<=N)
{
for(int i=size-1;i>=0;i--)
{
int temp=res.get(i)*val + carry;
//store the last digit at index and add remaining to carry
res.set(i,temp%10);
//update carry
carry=temp/10;
}
while(carry!=0)
{
res.add(0,carry%10);
carry=carry/10;
size++;
}
val++;
}
return res;
}
Top comments (0)