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)