Advertisement
Guest User

Untitled

a guest
Jan 28th, 2020
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.21 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace ConsoleApp1
  6. {
  7. class Program
  8. {
  9. static List<char> keys = new List<char>();
  10. static Stack<int> stack = new Stack<int>();
  11.  
  12. static void Main(string[] args)
  13. {
  14. InitList();
  15. Console.Write("Первое число: ");
  16. string first = Console.ReadLine();
  17.  
  18. Console.Write("Второе число: ");
  19. string second = Console.ReadLine();
  20.  
  21. int result = ToDec(first) + ToDec(second);
  22. Console.WriteLine(first+"+"+second+"="+ DecTo(result));
  23.  
  24.  
  25. Console.ReadKey();
  26. }
  27.  
  28. static int ToDec(string value)
  29. {
  30. var result = 0;
  31. var pow = value.Length;
  32.  
  33. foreach (var item in value)
  34. {
  35. var number = keys.IndexOf(item);
  36. result += (number * (int)Math.Pow(3, --pow));
  37. }
  38.  
  39. return result;
  40. }
  41.  
  42. static string DecTo(int value)
  43. {
  44. if (value < 3)
  45. {
  46. stack.Push(value);
  47. return string.Join("", Enumerable.Range(0, stack.Count).Select(x => keys[stack.Pop()]).ToArray());
  48. }
  49. else
  50. {
  51. var tmp = value % 3;
  52. stack.Push(tmp);
  53. return DecTo(value / 3);
  54. }
  55. }
  56.  
  57. static void InitList()
  58. {
  59. keys.Add('0');
  60. keys.Add('1');
  61. keys.Add('2');
  62. keys.Add('3');
  63. keys.Add('4');
  64. keys.Add('5');
  65. keys.Add('6');
  66. keys.Add('7');
  67. keys.Add('8');
  68. keys.Add('9');
  69. keys.Add('A');
  70. keys.Add('B');
  71. keys.Add('C');
  72. keys.Add('D');
  73. keys.Add('E');
  74. keys.Add('F');
  75. keys.Add('G');
  76. keys.Add('H');
  77. keys.Add('I');
  78. keys.Add('J');
  79. keys.Add('K');
  80. keys.Add('L');
  81. keys.Add('M');
  82. keys.Add('N');
  83. keys.Add('O');
  84. keys.Add('P');
  85. keys.Add('Q');
  86. keys.Add('R');
  87. keys.Add('S');
  88. keys.Add('T');
  89. keys.Add('U');
  90. keys.Add('V');
  91. keys.Add('W');
  92. keys.Add('X');
  93. keys.Add('Y');
  94. keys.Add('Z');
  95. keys.Add('a');
  96. keys.Add('b');
  97. keys.Add('c');
  98. keys.Add('d');
  99. keys.Add('e');
  100. keys.Add('f');
  101. keys.Add('g');
  102. keys.Add('h');
  103. keys.Add('i');
  104. keys.Add('j');
  105. keys.Add('k');
  106. keys.Add('l');
  107. keys.Add('m');
  108. keys.Add('n');
  109. keys.Add('o');
  110. keys.Add('p');
  111. keys.Add('q');
  112. keys.Add('r');
  113. keys.Add('s');
  114. keys.Add('t');
  115. keys.Add('u');
  116. keys.Add('v');
  117. keys.Add('w');
  118. keys.Add('x');
  119. keys.Add('y');
  120. keys.Add('z');
  121. }
  122. }
  123. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement