public void DigitArray_CloneTest() { var d = new DigitArray(9999999); var clone = d.Clone(); Assert.AreEqual(63, clone.GetDigitSum()); Assert.AreEqual(7, clone.GetDigitCount()); clone.MultiplyBy(2); // 19999998 // original is not modified Assert.AreEqual(63, d.GetDigitSum()); Assert.AreEqual(7, d.GetDigitCount()); // clone is modified Assert.AreEqual(63, clone.GetDigitSum()); Assert.AreEqual(8, clone.GetDigitCount()); }
public long Solve() { var previousFibNumber = new DigitArray(1); var fibNumber = new DigitArray(1); var currentNumber = 2; while (fibNumber.GetDigitCount() < 1000) { var temp = fibNumber.Clone(); fibNumber = fibNumber + previousFibNumber; previousFibNumber = temp; currentNumber++; } return currentNumber; }