Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2019
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.49 KB | None | 0 0
  1. #include <iostream>
  2. #include <bits/stdc++.h>
  3. #include <string>
  4. using namespace std;
  5.  
  6. string multiply(string num1, string num2){
  7.  
  8. int len1 = num1.size();
  9. int len2 = num2.size();
  10.  
  11. vector<int> result(len1 + len2, 0);
  12.  
  13. int i_n1 = 0;
  14. int i_n2 = 0;
  15.  
  16. for(int i=len1-1; i>=0; i--){
  17.  
  18. int carry = 0;
  19. int n1 = num1[i] - '0';
  20.  
  21. i_n2 = 0;
  22.  
  23. for(int j=len2-1; j>=0; j--){
  24. int n2 = num2[j] - '0';
  25.  
  26. int sum = n1*n2 + result[i_n1 + i_n2] + carry;
  27.  
  28. carry = sum/10;
  29. result[i_n1 + i_n2] = sum % 10;
  30.  
  31. i_n2++;
  32. }
  33.  
  34. if (carry > 0)
  35. result[i_n1 + i_n2] += carry;
  36.  
  37. i_n1++;
  38.  
  39. }
  40.  
  41. int i = result.size() - 1;
  42. while (i>=0 && result[i] == 0)
  43. i--;
  44.  
  45. string str_result = "";
  46.  
  47. while (i >= 0)
  48. str_result += std::to_string(result[i--]);
  49.  
  50. return str_result;
  51.  
  52. }
  53.  
  54. int main()
  55. {
  56. int a,b;
  57.  
  58. cout<< "Podaj liczbe:"<<endl;
  59. cin>>a; //50
  60. b=a-1; //49
  61. string temp = to_string(a);
  62. while(b>=1){
  63. string str1=temp;
  64. string str2=to_string(b);
  65.  
  66. temp=multiply(str1, str2);
  67. b--;
  68. }
  69. //tu wypisze tylko wynik
  70. cout<<temp;
  71.  
  72. //czesc kodu odpowiedzialna za wypisywanie od tylu po jednej cyfrze
  73. /* string result;
  74. int leng=temp.length();
  75. for(int i=leng-1; i>=0;i--){
  76. result = temp[i] + result;
  77. cout<<result<<endl;
  78. }
  79. */
  80. return 0;
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement