fork download
  1. #include<iostream>
  2. #include<cstring>
  3.  
  4. int max = 5000;
  5.  
  6. void display(int arr[]){
  7. int ctr = 0;
  8. for (int i=0; i<max; i++){
  9. if (!ctr && arr[i]) ctr = 1;
  10. if(ctr)
  11. std::cout<<arr[i];
  12. }
  13. }
  14.  
  15.  
  16. void factorial(int arr[], int n){
  17. if (!n) return;
  18. int carry = 0;
  19. for (int i=max-1; i>=0; --i){
  20. arr[i] = (arr[i] * n) + carry;
  21. carry = arr[i]/10;
  22. arr[i] %= 10;
  23. }
  24. factorial(arr,n-1);
  25. }
  26.  
  27. int main(){
  28. int *arr = new int[max];
  29. std::memset(arr,0,max*sizeof(int));
  30. arr[max-1] = 1;
  31. int num;
  32. std::cout<<"Enter the number: ";
  33. std::cin>>num;
  34. std::cout<<"factorial of "<<num<<" is :\n";
  35. factorial(arr,num);
  36. display(arr);
  37. delete[] arr;
  38. return 0;
  39. }
  40.  
Success #stdin #stdout 0s 2864KB
stdin
100
stdout
Enter the number: factorial of 100 is :
93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000