Advertisement
Guest User

Untitled

a guest
Dec 22nd, 2014
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.09 KB | None | 0 0
  1. string Substr(string a1, string a2)
  2. {
  3. string res;
  4. int l = MakeEqLength(a1,a2);
  5. res = a1;
  6. int i;
  7. string temp1;
  8. int temp;
  9. int tran = 0;
  10. int count = 0;
  11. bool flag = false;
  12. for (i = 0; i < l; i++)
  13. {
  14. temp = ((a1[i]-'0') - (a2[i]-'0'));
  15. if (temp < 0)
  16. {
  17. temp1=a1;
  18. a1=a2;
  19. a2=temp1;
  20. flag = true;
  21. break;
  22. }
  23. else if (temp > 0)
  24. break;
  25. else if (temp == 0)
  26. continue;
  27. }
  28. for (i = l - 1; i >= 0; i--)
  29. {
  30. temp = ((a1[i]-'0') - (a2[i]-'0')) - tran;
  31. if (temp < 0)
  32. {
  33. tran = 1;
  34. res[i]=temp+10+48;
  35. }
  36. else
  37. {
  38. tran = 0;
  39. res[i]=temp+48;
  40. }
  41. }
  42. while (res[0] == '0' && res.length() != 1) // erase leading zeros
  43. res.erase(0, 1);
  44. if (flag == true)
  45. {
  46. cout << "-";
  47. }
  48. return res;
  49. /*string res;
  50. int l = MakeEqLength(a1,a2);
  51. res = a1;
  52. int i;
  53. int temp;
  54. int tran = 0;
  55. int count = 0;
  56. bool flag = false;
  57. for (i = 0; i < l; i++)
  58. {
  59. temp = ((a1[i]-'0') - (a2[i]-'0'));
  60. if (temp < 0)
  61. {
  62. flag = true;
  63. break;
  64. }
  65. else if (temp > 0)
  66. break;
  67. else if (temp == 0)
  68. continue;
  69. }
  70. if (flag == true)
  71. {
  72. for (i = l - 1; i >= 0; i--)
  73. {
  74. temp = ((a2[i]-'0') - (a1[i]-'0')) - tran;
  75. if (temp < 0)
  76. {
  77. tran = 1;
  78. res[i]=temp+10+48;
  79. }
  80. else
  81. {
  82. tran = 0;
  83. res[i]=temp+48;
  84. }
  85. }
  86. }
  87. else
  88. {
  89. for (i = l - 1; i >= 0; i--)
  90. {
  91. temp = ((a1[i]-'0') - (a2[i]-'0')) - tran;
  92. if (temp < 0)
  93. {
  94. tran = 1;
  95. res[i]=temp+10+48;
  96. }
  97. else
  98. {
  99. tran = 0;
  100. res[i]=temp+48;
  101. }
  102. }
  103. }
  104. while (res[0] == '0' && res.length() != 1) // erase leading zeros
  105. res.erase(0, 1);
  106. if (flag == true)
  107. {
  108. cout << "-";
  109. }
  110. return res;*/
  111. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement