What is wrong with this?

#include <bits/stdc++.h>
using namespace std;
#define FAST ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
#define DEBUG(x) cout << ‘>’ << #x << ‘:’ << x << endl;
#define REP(i,n) for(int i=0;i<(n);i++)
#define FOR(i,a,b) for(int i=(a);i<=(b);i++)
#define FORD(i,a,b) for(int i=(a);i>=(b);i–)
typedef long long ll;

int main()
{ ll n , fact = 1;
cin>>n;
for( int i=n ; i> 0 ; i–){
fact *= i ;
}

cout<<fact<<endl; 
return 0;

}

@StreamerX
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:

  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.

@StreamerX long long int cant store that much big no so thats why this approach refer to code here


also dont forget to mark the doubt as resolved if cleared :smiley:

I hope I’ve cleared your doubt. I ask you to please rate your experience here
Your feedback is very important. It helps us improve our platform and hence provide you
the learning experience you deserve.

On the off chance, you still have some questions or not find the answers satisfactory, you may reopen
the doubt.

last test case failed !

You can refer this https://www.geeksforgeeks.org/factorial-large-number/
Also please save your code on ide.codingblocks.com and share its link.

I hope I’ve cleared your doubt. I ask you to please rate your experience here
Your feedback is very important. It helps us improve our platform and hence provide you
the learning experience you deserve.

On the off chance, you still have some questions or not find the answers satisfactory, you may reopen
the doubt.

Still getting last test case failed …code link - https://ide.codingblocks.com/s/260466

Large factorials cannot be stored in length of 500.
Increase MAX to 10^5 and then check.