static void Main(string[] args)
        {
            Polynomial a = new Polynomial();
            Polynomial b = new Polynomial();

            a.ReadPolynomial();
            b.ReadPolynomial();

            Polynomial r = a + b;
            Console.WriteLine("Addition: " + r.ToString());
            r = a - b;
            Console.WriteLine("Subtraction: " + r.ToString());
            r = a * b;
            Console.WriteLine("Multiplication: " + r.ToString());
        }
        public static Polynomial operator +(Polynomial x, Polynomial y)
        {
            int biggerDegree = Math.Max(x.PolynomialDegree, y.PolynomialDegree);
            Polynomial result = new Polynomial();

            double tmp = 0.0;
            for (int i = 0; i <= biggerDegree; ++i)
            {
                tmp = 0.0;
                if (i <= x.PolynomialDegree)
                {
                    tmp += x[i];
                }
                if (i <= y.PolynomialDegree)
                {
                    tmp += y[i];
                }

                result.AddCoefficient(tmp);
            }

            result.Normalize();
            return result;
        }
 public static Polynomial operator *(Polynomial x, Polynomial y)
 {
     Polynomial result = new Polynomial();
     for (int i = 0; i <= x.PolynomialDegree; ++i)
     {
         for (int j = 0; j <= y.PolynomialDegree; ++j)
         {
             if (result.PolynomialDegree < i + j)
             {
                 result.AddCoefficient(0.0);
             }
             result[i + j] += x[i] * y[j];
         }
     }
     result.Normalize();
     return result;
 }
 public static Polynomial operator -(Polynomial x)
 {
     Polynomial result = new Polynomial();
     for (int i = 0; i <= x.PolynomialDegree; ++i)
     {
         result.AddCoefficient(-x[i]);
     }
     return result;
 }
        public static Polynomial operator -(Polynomial x, Polynomial y)
        {
            Polynomial result = x + (-y);

            return(result);
        }