Advertisement
Guest User

Untitled

a guest
Apr 6th, 2014
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.09 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. class Enigmanation
  4. {
  5.     static void Main()
  6.     {
  7.         string input = Console.ReadLine();
  8.         List<double> numbers = new List<double>();
  9.         List<char> signs = new List<char>();
  10.         double resultBrackets = 0;
  11.         List<double> numbersBrackets = new List<double>();
  12.         List<char> signsBrackets = new List<char>();
  13.         int numBra = 0;
  14.         for (int posOfIndex = 0; posOfIndex < input.Length; posOfIndex++)
  15.         {
  16.             if (Char.IsDigit(input[posOfIndex]))
  17.             {
  18.                 numbers.Add(Convert.ToDouble(Convert.ToInt32(input[posOfIndex]) - 48));
  19.             }
  20.             if (input[posOfIndex] == '+' || input[posOfIndex] == '-' || input[posOfIndex] == '*' || input[posOfIndex] == '/' || input[posOfIndex] == '%')
  21.             {
  22.                 signs.Add(input[posOfIndex]);
  23.             }
  24.             if (input[posOfIndex] == '(')
  25.             {
  26.                 numBra = posOfIndex;
  27.                 numbersBrackets.Clear();
  28.                 signsBrackets.Clear();
  29.                 while (input[numBra] != ')')
  30.                 {
  31.                     if (Char.IsDigit(input[numBra]))
  32.                     {
  33.                         numbersBrackets.Add(Convert.ToDouble(Convert.ToInt32(input[numBra] - 48)));
  34.                     }
  35.                     if (input[numBra] == '+' || input[numBra] == '-' || input[numBra] == '*' || input[numBra] == '/' || input[numBra] == '%')
  36.                     {
  37.                         signsBrackets.Add(input[numBra]);
  38.                     }
  39.                     numBra++;
  40.                 }
  41.                 resultBrackets = numbersBrackets[0];
  42.                 for (int k = 0; k < signsBrackets.Count; k++)
  43.                 {
  44.                     if (signsBrackets[k] == '+')
  45.                         resultBrackets = resultBrackets + numbersBrackets[k + 1];
  46.                     if (signsBrackets[k] == '-')
  47.                         resultBrackets = resultBrackets - numbersBrackets[k + 1];
  48.                     if (signsBrackets[k] == '*')
  49.                         resultBrackets = resultBrackets * numbersBrackets[k + 1];
  50.                     if (signsBrackets[k] == '/')
  51.                         resultBrackets = resultBrackets / numbersBrackets[k + 1];
  52.                     if (signsBrackets[k] == '%')
  53.                         resultBrackets = resultBrackets % numbersBrackets[k + 1];
  54.                 }
  55.                 numbers.Add(resultBrackets);
  56.                 posOfIndex = numBra;
  57.             }
  58.         }
  59.         double result = numbers[0];
  60.         for (int k = 0; k < signs.Count; k++)
  61.         {
  62.             if (signs[k] == '+')
  63.                 result = result + numbers[k + 1];
  64.             if (signs[k] == '-')
  65.                 result = result - numbers[k + 1];
  66.             if (signs[k] == '*')
  67.                 result = result * numbers[k + 1];
  68.             if (signs[k] == '/')
  69.                 result = result / numbers[k + 1];
  70.             if (signs[k] == '%')
  71.                 result = result % numbers[k + 1];
  72.         }
  73.         Console.WriteLine("{0:F3}", result);
  74.     }
  75.  
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement