a53

suma_perm_circ

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