Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- class Enigmanation
- {
- static void Main()
- {
- string input = Console.ReadLine();
- List<double> numbers = new List<double>();
- List<char> signs = new List<char>();
- double resultBrackets = 0;
- List<double> numbersBrackets = new List<double>();
- List<char> signsBrackets = new List<char>();
- int numBra = 0;
- for (int posOfIndex = 0; posOfIndex < input.Length; posOfIndex++)
- {
- if (Char.IsDigit(input[posOfIndex]))
- {
- numbers.Add(Convert.ToDouble(Convert.ToInt32(input[posOfIndex]) - 48));
- }
- if (input[posOfIndex] == '+' || input[posOfIndex] == '-' || input[posOfIndex] == '*' || input[posOfIndex] == '/' || input[posOfIndex] == '%')
- {
- signs.Add(input[posOfIndex]);
- }
- if (input[posOfIndex] == '(')
- {
- numBra = posOfIndex;
- numbersBrackets.Clear();
- signsBrackets.Clear();
- while (input[numBra] != ')')
- {
- if (Char.IsDigit(input[numBra]))
- {
- numbersBrackets.Add(Convert.ToDouble(Convert.ToInt32(input[numBra] - 48)));
- }
- if (input[numBra] == '+' || input[numBra] == '-' || input[numBra] == '*' || input[numBra] == '/' || input[numBra] == '%')
- {
- signsBrackets.Add(input[numBra]);
- }
- numBra++;
- }
- resultBrackets = numbersBrackets[0];
- for (int k = 0; k < signsBrackets.Count; k++)
- {
- if (signsBrackets[k] == '+')
- resultBrackets = resultBrackets + numbersBrackets[k + 1];
- if (signsBrackets[k] == '-')
- resultBrackets = resultBrackets - numbersBrackets[k + 1];
- if (signsBrackets[k] == '*')
- resultBrackets = resultBrackets * numbersBrackets[k + 1];
- if (signsBrackets[k] == '/')
- resultBrackets = resultBrackets / numbersBrackets[k + 1];
- if (signsBrackets[k] == '%')
- resultBrackets = resultBrackets % numbersBrackets[k + 1];
- }
- numbers.Add(resultBrackets);
- posOfIndex = numBra;
- }
- }
- double result = numbers[0];
- for (int k = 0; k < signs.Count; k++)
- {
- if (signs[k] == '+')
- result = result + numbers[k + 1];
- if (signs[k] == '-')
- result = result - numbers[k + 1];
- if (signs[k] == '*')
- result = result * numbers[k + 1];
- if (signs[k] == '/')
- result = result / numbers[k + 1];
- if (signs[k] == '%')
- result = result % numbers[k + 1];
- }
- Console.WriteLine("{0:F3}", result);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement