public static LongNumber Copy(LongNumber MyList1) { LongNumber temp = new LongNumber(); for (int i = 0; i < MyList1.Length; i++) { temp.Push(MyList1[i]); } return(temp); }
public static LongNumber operator -(LongNumber number1, LongNumber number2) { if (number1 < number2) { return(null); } if (number1 == number2) { return(new LongNumber(0)); } LongNumber result = new LongNumber(0); for (int i = 0; i < number1.Length; i++) { if (i < number1.Length - 1) { result.Push(0); (result)[i + 1] = (result)[i + 1] - 1; (result)[i] = (result)[i] + 10 + number1[i]; } else { result[i] = result[i] + number1[i]; } if (i < number2.Length) { result[i] = result[i] - number2[i]; } if (result[i] / 10 > 0 && i < number1.Length - 1) { (result)[i + 1] = (result)[i + 1] + 1; result[i] = result[i] % 10; } } int j = result.Length - 1; while (result[j] <= 0 && j > 0) { result.Pop(); j--; } return(result); }