using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Diagnostics.Eventing.Reader;

namespace RasradDll
{
    public class Rasrad
    {
        /// <summary>
        /// Возращает обратное число
        /// </summary>
        /// <param name="n"></param>
        /// <returns></returns>
        public double GetReversRasrad(int n)
        {
            Trace.Listeners.Add(new TextWriterTraceListener("log.txt"));
            Trace.AutoFlush = true;
            List<int> listAnswer = GetList(n);
            Trace.WriteLine("Trace. Количество разрядов:" + listAnswer.Count);
            Debug.WriteLine("Debug. Количество разрядов:" + listAnswer.Count);
            double rasrad = (int)Math.Pow(10, listAnswer.Count - 1);
            double answer = 0;
            for (int i = 0; i < listAnswer.Count; i++)
            {
                answer += listAnswer[i] * rasrad;
                rasrad = rasrad / 10;
            }
            Trace.WriteLine("Trace. Ответ метода:" + answer);
            Debug.WriteLine("Debug. Ответ метода:" + answer);
            return answer;
        }

        /// <summary>
        /// Возвращение листа разрядов в обратном порядке
        /// </summary>
        /// <param name="n"></param>
        /// <returns></returns>
        public List<int> GetList(int n)
        {
            string str = n.ToString();
            int count = str.Length;
            int ost = 0;
            List<int> listRasrad = new List<int>();
            for (int i = 0; i < count; i++)
            {
                ost = n / 10;
                ost = ost * 10;
                listRasrad.Add(n - ost);
                n = n / 10;
            }
            return listRasrad;
        }
    }
}
