Rasrad.cs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Diagnostics;
  4. using System.Diagnostics.Eventing.Reader;
  5. namespace RasradDll
  6. {
  7. public class Rasrad
  8. {
  9. /// <summary>
  10. /// Возращает обратное число
  11. /// </summary>
  12. /// <param name="n"></param>
  13. /// <returns></returns>
  14. public double GetReversRasrad(int n)
  15. {
  16. Trace.Listeners.Add(new TextWriterTraceListener("log.txt"));
  17. Trace.AutoFlush = true;
  18. List<int> listAnswer = GetList(n);
  19. Trace.WriteLine("Trace. Количество разрядов:" + listAnswer.Count);
  20. Debug.WriteLine("Debug. Количество разрядов:" + listAnswer.Count);
  21. double rasrad = (int)Math.Pow(10, listAnswer.Count - 1);
  22. double answer = 0;
  23. for (int i = 0; i < listAnswer.Count; i++)
  24. {
  25. answer += listAnswer[i] * rasrad;
  26. rasrad = rasrad / 10;
  27. }
  28. Trace.WriteLine("Trace. Ответ метода:" + answer);
  29. Debug.WriteLine("Debug. Ответ метода:" + answer);
  30. return answer;
  31. }
  32. /// <summary>
  33. /// Возвращение листа разрядов в обратном порядке
  34. /// </summary>
  35. /// <param name="n"></param>
  36. /// <returns></returns>
  37. public List<int> GetList(int n)
  38. {
  39. string str = n.ToString();
  40. int count = str.Length;
  41. int ost = 0;
  42. List<int> listRasrad = new List<int>();
  43. for (int i = 0; i < count; i++)
  44. {
  45. ost = n / 10;
  46. ost = ost * 10;
  47. listRasrad.Add(n - ost);
  48. n = n / 10;
  49. }
  50. return listRasrad;
  51. }
  52. }
  53. }