I have used dp to calculate factorial of a number, but factorial value is out of range of integer and if other data type is used, then output is in exponential form…so how to get the required output?
How to get the required output?
@pragyachoudhary1111 hey pragya
You have to find the factorial of very large numbers.
You can’t store the factorials of 100, 200… for that you can use array which can store upto 10^6 size.
Basic idea would be:
Create an array ‘res[]’ of MAX size where MAX is number of maximum digits in output.
Initialize value stored in ‘res[]’ as 1 and initialize ‘res_size’ (size of ‘res[]’) as 1.
Do following for all numbers from x = 2 to n.
……a) Multiply x with res[] and update res[] and res_size to store the multiplication result.
multiply(res[], x)
Initialize carry as 0.
Do following for i = 0 to res_size – 1
….a) Find value of res[i] * x + carry. Let this value be prod.
….b) Update res[i] by storing last digit of prod in it.
….c) Update carry by storing remaining digits in carry.
Put all digits of carry in res[] and increase res_size by number of digits in carry.