コード例 #1
0
        public void DigitArray_DigitCountTest()
        {
            var digitArray = new DigitArray(1);
            Assert.AreEqual(1, digitArray.GetDigitCount());

            digitArray = new DigitArray(125);
            Assert.AreEqual(3, digitArray.GetDigitCount());
        }
コード例 #2
0
        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());
        }
コード例 #3
0
        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());
        }
コード例 #4
0
ファイル: Problem025.cs プロジェクト: AlphaGit/project-euler
        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;
        }