public string Test25(int f, int s) { var first = new OwnBigInteger(); foreach (var value in f.ToString()) { first.Add(int.Parse(value.ToString()), true); } first.Print(true); var second = new OwnBigInteger(); foreach (var value in s.ToString()) { second.Add(int.Parse(value.ToString()), true); } second.Print(true); var result = OwnBigInteger.AddInReverseOrder(first, second); Console.WriteLine("Result is"); result.Print(true); var test25 = result.ToString(); return(test25); }
public static OwnBigInteger AddInReverseOrder( OwnBigInteger first, OwnBigInteger second) { var res = new OwnBigInteger(); Node firstRunner = first._head; Node secondRunner = second._head; int carry = 0; while (firstRunner != null && secondRunner != null) { int i = firstRunner.item + secondRunner.item + carry; carry = i >= 10 ? 1 : 0; res.Add(i % 10, false); firstRunner = firstRunner.next; secondRunner = secondRunner.next; } if (first._length > second._length) { while (firstRunner != null) { res.Add(firstRunner.item + carry, false); firstRunner = firstRunner.next; } } else { while (secondRunner != null) { res.Add(secondRunner.item + carry, false); secondRunner = secondRunner.next; } } return(res); }