public void DigitArray_DigitCountTest() { var digitArray = new DigitArray(1); Assert.AreEqual(1, digitArray.GetDigitCount()); digitArray = new DigitArray(125); Assert.AreEqual(3, digitArray.GetDigitCount()); }
public void DigitArray_MultiplyByTest() { var digitArray = new DigitArray(1); digitArray.MultiplyBy(9); Assert.AreEqual(1, digitArray.GetDigitCount()); Assert.AreEqual(9, digitArray.GetDigitSum()); digitArray = new DigitArray(125); digitArray.MultiplyBy(77); // result = 9625 Assert.AreEqual(4, digitArray.GetDigitCount()); Assert.AreEqual(22, digitArray.GetDigitSum()); }
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; }