예제 #1
0
        /// <summary>
        /// Вспомогательная функция, очищающая "лишние" нули: 0234 станет 234
        /// </summary>
        /// <returns>Для удобства, возвращает себя же</returns>
        public Natural Clear()
        {
            //0013 = {3100}
            int counter = 0;

            for (int i = Value.Length - 1; i >= 0 && Value[i] == 0; --i)
            {
                counter++;
            }
            Value = AddMath.SubArray(Value, Value.Length - counter);
            if (Value.Length == 0)
            {
                Value = new int[] { 0 }
            }
            ;
            return(this);
        }
예제 #2
0
        /// <summary>
        /// Вспомогательная функция, очищающая "лишние" нули: -0234 станет -234
        /// </summary>
        /// <returns>Для удобства, возвращает себя же</returns>
        public Polynomial Clear()
        {
            foreach (Rational R in Values)
            {
                R.Clear();
            }
            int counter = 0;

            for (int i = Length - 1; i >= 0 && N_1.Run(Values[i].Numerator.Value, new Natural("0")) == 0; --i)
            {
                counter++;
            }
            Values = AddMath.SubArray(Values, Length - counter);
            if (Length == 0)
            {
                Values = new Rational[] { }
            }
            ;
            return(this);
        }
예제 #3
0
 //Равенство натуральных чисел
 public static bool operator ==(Natural d1, Natural d2)
 {
     return(AddMath.ArraysEqual(d1.Value, d2.Value));
 }