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()); } }
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); }
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(); }