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