Advertisement
uzimane_

длинная арифметика сложение

Jul 10th, 2020
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.19 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. int main()
  4. {
  5. using namespace std;
  6.  
  7. freopen("input.txt", "r", stdin);
  8. freopen("output.txt", "w", stdout);
  9.  
  10. int n, m, max;
  11. int f = 1;
  12. cin >> n >> m;
  13.  
  14. int maxik;
  15. if (m >= n)
  16. {
  17. maxik = m;
  18. }
  19. else
  20. {
  21. maxik = n;
  22. }
  23.  
  24. int *mas = new int[maxik + 2];
  25. int *arr = new int[maxik + 2];
  26. int *ans = new int[maxik + 2];
  27.  
  28. mas[0] = 0;
  29. arr[0] = 0;
  30. ans[0] = -1;
  31. if (n >= m)
  32. {
  33. for (int i = 1;i <= n;i++)
  34. {
  35. cin >> mas[i];
  36. }
  37. for (int i = (n - m + 1);i <= n;i++)
  38. {
  39. cin >> arr[i];
  40. }
  41. for (int i = 1;i < (n - m + 1);i++)
  42. {
  43. arr[i] = 0;
  44. }
  45. max = n;
  46. }
  47. else
  48. {
  49. for (int i = 1;i < (m - n + 1);i++)
  50. {
  51. mas[i] = 0;
  52. }
  53. for (int i = (m - n + 1);i <= m;i++)
  54. {
  55. cin >> mas[i];
  56. }
  57. for (int i = 1;i <= m;i++)
  58. {
  59. cin >> arr[i];
  60. }
  61. max = m;
  62. }
  63.  
  64.  
  65.  
  66.  
  67.  
  68. for (int i = max;i > 0;i--)
  69. {
  70. ans[i] = mas[i] + arr[i];
  71. }
  72.  
  73. for (int i = max;i > 0;i--)
  74. {
  75. if (ans[i] >= 10)
  76. {
  77. ans[i - 1] += ans[i] / 10;
  78. ans[i] %= 10;
  79. }
  80.  
  81. }
  82.  
  83. if (ans[0] != -1)
  84. ans[0] = 1;
  85.  
  86. for (int i = 0;i <= max;i++)
  87. {
  88. if (ans[i] >= 0)
  89. {
  90. cout << ans[i];
  91. }
  92. }
  93.  
  94.  
  95.  
  96.  
  97.  
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement