bool Check(int[] A, int P) { var S = new Integer(A[0], P); S.Check(); foreach (var a in A.Skip(1)) { if (a > S.Length) { S.Add(a - S.Length); S.Check(); } else { S.Cut(a); S.Check(); if (!S.Increment()) { return(false); } S.Check(); } if (S.Length != a) { throw new Exception(); } // WriteLine(S); } return(true); }
static void Main() { Integer Num = new Integer(3); Console.WriteLine("덧셈 : " + Num.Add(2)); Console.WriteLine("곱셈 : " + Num.Mul(2)); Console.WriteLine("뺄셈 : " + Num.Sub(2)); }
public void Add(Integer left, Integer right, Integer expected) { using (Immutability.Guard(left, right)) { var actualOp = left + right; var actualFu = left.Add(right); Assert.Equal(expected, actualOp); Assert.Equal(expected, actualFu); } }
bool Check(int[] A, int P) { var S = new Integer(A[0], P); foreach (var a in A.Skip(1)) { if (a > S.Length) { S.Add(a - S.Length); } else { S.Cut(a); if (!S.Increment()) { return(false); } } } return(true); }
internal override Integer Op(Integer lhs, Integer rhs) { return(lhs.Add(rhs)); }
//TODO: verify this works /// <summary>Addition of the integer portions of two vars</summary> /// <param name="vi"></param> /// <returns></returns> /// <remarks>Fractional value is not returned</remarks> public IEnumerable <RegisterA> Add(VInteger vi) => Integer.Add(vi);