/// <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); }
/// <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); }
//Равенство натуральных чисел public static bool operator ==(Natural d1, Natural d2) { return(AddMath.ArraysEqual(d1.Value, d2.Value)); }