private static void RemainderFizzBuzz(FizzBuzzSolver fb)
 {
     for (int i = 1; i <= fb.Remainder; i++)
     {
         Console.WriteLine(i % fb.Fizz == 0 ? "Fizz" : i % fb.Buzz == 0 ? "Buzz" : i.ToString());
     }
 }
示例#2
0
        public void TestFirstFifteenLines()
        {
            var firstFifteenLines = new[]
            {
                "1",
                "2",
                "Fizz",
                "4",
                "Buzz",
                "Fizz",
                "7",
                "8",
                "Fizz",
                "Buzz",
                "11",
                "Fizz",
                "13",
                "14",
                "FizzBuzz"
            };

            var actualLines = FizzBuzzSolver.Solve(15);

            var counter = 0;

            foreach (var line in firstFifteenLines)
            {
                Assert.AreEqual(line, actualLines[counter]);
                counter++;
            }

            Assert.AreEqual(15, actualLines.Count);
        }
示例#3
0
        public void TestLastLine(int solveFor, string expectedLastLine)
        {
            var lines = FizzBuzzSolver.Solve(solveFor);

            Assert.AreEqual(expectedLastLine, lines.Last());
            Assert.AreEqual(lines.Count, solveFor);
        }
 private static void NormalFizzBuzz(FizzBuzzSolver fb)
 {
     for (int i = 1; i < fb.FizzBuzz; i++)
     {
         Console.WriteLine(i % fb.Fizz == 0 ? "Fizz" : i % fb.Buzz == 0 ? "Buzz" : i.ToString());
     }
     Console.WriteLine("FizzBuzz");
     for (int i = fb.FizzBuzz + 1; i <= fb.Iterations; i++)
     {
         Console.WriteLine(i % fb.Fizz == 0 ? "Fizz" : i % fb.Buzz == 0 ? "Buzz" : i.ToString());
     }
 }
    private static void CachedFizzBuzz(FizzBuzzSolver fb)
    {
        var fizzbuzzArray = new IFizzBuzz[fb.FizzBuzz];

        for (int i = 0; i < fb.FizzBuzz - 1; i++)
        {
            int s = i + 1;
            if (s % fb.Fizz == 0)
            {
                fizzbuzzArray[i] = new Fizz();
                Console.WriteLine("Fizz");
            }
            else
            if (s % fb.Buzz == 0)
            {
                fizzbuzzArray[i] = new Buzz();
                Console.WriteLine("Buzz");
            }
            else
            {
                fizzbuzzArray[i] = new NullFizzBuzz();
                Console.WriteLine(s);
            }
        }
        fizzbuzzArray[fb.FizzBuzz - 1] = new FizzBuzz();
        Console.WriteLine("FizzBuzz");
        NullFizzBuzz.value = fb.FizzBuzz;
        for (int j = 1; j < fb.Quotient; j++)
        {
            for (int i = 0; i < fb.FizzBuzz; i++)
            {
                NullFizzBuzz.value++;
                Console.WriteLine(fizzbuzzArray[i]);
            }
        }
        for (int i = 0; i < fb.Remainder; i++)
        {
            NullFizzBuzz.value++;
            Console.WriteLine(fizzbuzzArray[i]);
        }
    }
    static void Main()
    {
        int            fizz       = 3;   // int.Parse(Console.ReadLine());
        int            buzz       = 5;   // int.Parse(Console.ReadLine());
        int            iterations = 100; //int.Parse(Console.ReadLine());
        int            fizzbuzz   = fizz * buzz;
        int            quotient   = Math.DivRem(iterations, fizzbuzz, out var remainder);
        FizzBuzzSolver fb         = new FizzBuzzSolver(fizz, buzz, iterations, fizzbuzz, quotient, remainder);

        switch (quotient)
        {
        case 0: fb.Solve(RemainderFizzBuzz); break;

        case 1: fb.Solve(NormalFizzBuzz);  break;

        default: fb.Solve(CachedFizzBuzz); break;
        }
        ;

        Console.Read();
    }