a53

FactorialnHard

a53
Dec 27th, 2019
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.06 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. string px(string num1, string num2)
  5. {
  6. int n1=num1.size();
  7. int n2=num2.size();
  8. if(n1==0||n2==0)
  9. return "0";
  10. vector<int> rez(n1+n2,0);
  11. int i_n1=0;
  12. int i_n2=0;
  13. for(int i=n1-1;i>=0;i--)
  14. {
  15. int t=0;
  16. int n1=num1[i]-'0';
  17. i_n2=0;
  18. for(int j=n2-1;j>=0;j--)
  19. {
  20. int n2=num2[j]-'0';
  21. int sum=n1*n2+rez[i_n1+i_n2]+t;
  22. t=sum/10;
  23. rez[i_n1+i_n2]=sum%10;
  24. i_n2++;
  25. }
  26. if(t>0)
  27. rez[i_n1+i_n2]+=t;
  28. i_n1++;
  29. }
  30. int i=rez.size()-1;
  31. while(i>=0 && rez[i]==0)
  32. i--;
  33. if(i==-1)
  34. return "0";
  35. string s="";
  36. while(i>=0)
  37. s+=to_string(rez[i--]);
  38. return s;
  39. }
  40.  
  41. int main()
  42. {
  43. string s="1",ss="1";
  44. int n;
  45. cin>>n;
  46. if(n==1)
  47. {
  48. cout<<1;
  49. exit(0);
  50. }
  51. for(int i=2;i<=n;i++)
  52. s=px(s,to_string(i));
  53. for(int i=1;i<=n;i++)
  54. ss=px(s,ss);
  55. cout<<ss;
  56. return 0;
  57. }
Add Comment
Please, Sign In to add comment