fork download
  1. #include <iostream>
  2. #include <bits/stdc++.h>
  3. using namespace std;
  4. #define MAX 500
  5. int multiply(int x, int res[], int res_size);
  6.  
  7. void factorial(int n)
  8. {
  9. int res[MAX];
  10.  
  11. res[0] = 1;
  12. int res_size = 1;
  13.  
  14. for (int x=2; x<=n; x++)
  15. res_size = multiply(x, res, res_size);
  16.  
  17. for (int i=res_size-1; i>=0; i--)
  18. cout << res[i];
  19. }
  20.  
  21. int multiply(int x, int res[], int res_size)
  22. {
  23. int carry = 0;
  24. for (int i=0; i<res_size; i++)
  25. {
  26. int prod = res[i] * x + carry;
  27. res[i] = prod % 10;
  28. carry = prod/10;
  29. }
  30.  
  31.  
  32. while (carry)
  33. {
  34. res[res_size] = carry%10;
  35. carry = carry/10;
  36. res_size++;
  37. }
  38. return res_size;
  39. }
  40. int main()
  41. {
  42. int t;
  43. cin>>t;
  44. while(t--){
  45. int n;
  46. cin>>n;
  47. factorial(n);
  48. cout<<"\n";
  49. }
  50. return 0;
  51. }
Success #stdin #stdout 0s 3464KB
stdin
4
1
2
5
3
stdout
1
2
120
6