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)