Example #1
0
        public static void Main(string[] args)
        {
            string input = "4511263156549903003502425944020621017624018923015950620210037836734253630^200".Replace(" ", "").Replace("(", "").Replace(")", "");

            #region ifs
            if (input.Contains("^"))
            {
                string[] numbers = input.Split('^');
                if (numbers.Length <= 1)
                {
                    Console.WriteLine("Слишком мало чисел");
                    return;
                }
                VeryLong number = new VeryLong(numbers[0]);
                for (int i = 1; i < numbers.Length; i++)
                {
                    number = VeryLong.Pow(number, new VeryLong(numbers[i]));
                }
                Console.WriteLine(number.ToString());
            }
            else if (input.Contains("/") || input.Contains(":"))
            {
                string[] numbers;
                if (input.Contains("/"))
                {
                    numbers = input.Split('/');
                }
                else
                {
                    numbers = input.Split(':');
                }
                if (numbers.Length <= 1)
                {
                    Console.WriteLine("Слишком мало чисел");
                    return;
                }
                VeryLong number = new VeryLong(numbers[0]);
                for (int i = 1; i < numbers.Length; i++)
                {
                    number /= new VeryLong(numbers[i]);
                }
                Console.WriteLine(number.ToString());
            }
            else if (input.Contains("*"))
            {
                string[] numbers = input.Split('*');
                if (numbers.Length <= 1)
                {
                    Console.WriteLine("Слишком мало чисел");
                    return;
                }
                VeryLong number = new VeryLong(numbers[0]);
                for (int i = 1; i < numbers.Length; i++)
                {
                    number *= new VeryLong(numbers[i]);
                }
                Console.WriteLine(number.ToString());
            }
            #endregion
            else if (input.Contains("+"))
            {
                string[] numbers = input.Split('+');
                if (numbers.Length <= 1)
                {
                    Console.WriteLine("Слишком мало чисел");
                    return;
                }
                VeryLong number = new VeryLong(numbers[0]);
                for (int i = 1; i < numbers.Length; i++)
                {
                    number += new VeryLong(numbers[i]);
                }
                Console.WriteLine(number.ToString());
            }
            else if (input.Contains("-"))
            {
                List <string> numbers = new List <string>(input.Replace("--", "ё").Split("-".ToCharArray()));
                for (int i = 0; i < numbers.Count; i++)
                {
                    if (numbers[i].Contains("ё"))
                    {
                        numbers.InsertRange(i, numbers[i].Split('ё'));
                        numbers.RemoveAt(i + 2);
                        i++;
                        numbers[i] = "-" + numbers[i];
                    }
                }
                if (numbers.Count <= 1)
                {
                    Console.WriteLine("Слишком мало чисел");
                    return;
                }
                for (int i = 0; i < numbers.Count - 1; i++)
                {
                    if (numbers[i] == "")
                    {
                        numbers[i + 1].Insert(0, "-");
                        numbers.RemoveAt(i);
                        i--;
                    }
                }
                VeryLong number = new VeryLong(numbers[0]);
                for (int i = 1; i < numbers.Count; i++)
                {
                    number -= new VeryLong(numbers[i]);
                }
                Console.WriteLine(number.ToString());
            }
        }