Brokencalculator

how to solve broken calculator

You cannot store the factorial of large number in a variable.
For this you can use an array for storing each digits of the result.
Basic idea would be:

1.Create an array ‘res[]’ of MAX size where MAX is number of maximum digits in output.
2.Initialize value stored in ‘res[]’ as 1 and initialize ‘res_size’ (size of ‘res[]’) as 1.
3.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)

1.Initialize carry as 0.
2.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.
3.Put all digits of carry in res[] and increase res_size by number of digits in carry.