1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
using System; namespace FizzBuzz { class Program { static void Main(string[] args) { for (int i = 1; i < 101; i++) Console.WriteLine(string.Format("{0}{1}{2}", i % 3 != 0 && i % 5 != 0 ? i.ToString() : "", i % 3 == 0 ? "Fizz" : "", i % 5 == 0 ? "Buzz" : "")); Console.ReadKey(); } } }
Refactorings
No refactoring yet !
Hyru
October 24, 2007, October 24, 2007 16:42, permalink
Easier to read and less CPU/Memory usage. There's a trinary set of possible outcomes so using the string "FizzBuzz" yields the same result. If this is for school, you might want to make sure concatenating Fizz and Buzz is acceptable.
1 2 3 4 5 6 7 8 9
for ( int i = 1; i < 101; i++ ) Console.WriteLine( i % 3 != 0 && i % 5 != 0 ? i.ToString() : i % 3 == 0 ? i % 5 == 0 ? "FizzBuzz" : "Fizz" : "Buzz" ); Console.ReadKey();
steve
October 24, 2007, October 24, 2007 18:12, permalink
1 2 3 4 5 6 7 8 9
for ( int i = 1; i < 101; i++ ) Console.WriteLine( i % 3 != 0 && i % 5 != 0 ? i.ToString() : (i % 3 == 0 ? "Fizz" : "")+(i % 3 == 0 ? "Bizz" : "") ); Console.ReadKey();
Dave
October 26, 2007, October 26, 2007 21:23, permalink
What should this be optimized for?
Speed of execution? Readability?
How about this?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
int mod15 = 0; for ( int i = 1; i < 101; i++ ) { switch(++mod15) { case 15: Console.WriteLine("FizzBuzz"); mod15 = 0; break; case 3: case 6: case 9: Console.WriteLine("Fizz"); break; case 5: case 10: Console.WriteLine("Buzz"); break; default: Console.WriteLine(i); break; } } Console.ReadKey();
Mark Lindell
December 11, 2007, December 11, 2007 18:18, permalink
1 2 3
(from n in Enumerable.Range(1, 100) where (n % 3) == 1 || (n % 2) == 1 select n.ToString() + "=" + (((n % 2) == 1) ? "Fizz" : "") + (((n % 3) == 1) ? "Buzz" : "")).ToList().ForEach(Console.WriteLine);
Kalpesh
December 17, 2007, December 17, 2007 17:41, permalink
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
static string fizz(int i) { if (i % 3 == 0) return "Fizz"; return string.Empty; } static string Buzz(int i) { if (i % 5 == 0) return "Buzz"; return string.Empty; } for (int i = 1; i < 101; i++) { string fizzbuzz = fizz(i) + Buzz(i); Console.WriteLine(fizzbuzz == string.Empty ? i.ToString() : fizzbuzz); }
pho
March 25, 2008, March 25, 2008 20:06, permalink
version with extension method and oneline fizzbuzz calculation
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
public static class ExtensionMethods { public static string FizzBuzz(this int i) { return (i % 3 == 0 && i % 5 == 0) ? "FizzBuzz" : (i % 3 == 0) ? "Fizz" : (i % 5 == 0) ? "Buzz" : i.ToString(); } } class Program { static void Main(string[] args) { for (int i = 1; i <= 100; i++) Console.WriteLine(i.FizzBuzz()); Console.ReadLine(); } }
David H
June 22, 2008, June 22, 2008 22:54, permalink
Can't take credit for this but it's the cleanest solution I've seen.
1 2 3 4 5 6 7 8
String output;
for (int i=1;i<=100;i++)
{
output = (i % 3 == 0) ? "Fizz" : "";
output = (i % 5 == 0) ? output + "Buzz" : output;
if (output.Equals("")) output = i.ToString();
Response.Write(output + "<br />");
}
dcadenas.blogspot.com
July 16, 2008, July 16, 2008 02:04, permalink
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
static class ExtensionsMethods { public static bool IsMultipleOf(this int number, int num) { return number % num == 0; } } class Program { static void Main(string[] args) { for (int i = 1; i <= 100; i++) Console.WriteLine(FizzBuzzify(i)); Console.ReadKey(); } static string FizzBuzzify(int i) { if (i.IsMultipleOf(3) && i.IsMultipleOf(5)) return "FizzBuzz"; if (i.IsMultipleOf(3)) return "Fizz"; if (i.IsMultipleOf(5)) return "Buzz"; return i.ToString(); } }
Chris Jester-Young
July 16, 2008, July 16, 2008 10:20, permalink
Implementation in Perl. :-P
(Le sigh, some people just have no sense of humour. Marking my submission as spam? You've got to be kidding me, it's a valid FizzBuzz program after all.)
FizzBuzz in Perl
1 2 3 4 5 6 7
my %fbmap = (3 => 'Fizz', 5 => 'Buzz'); my $fizzbuzz = sub { my $num = $_; join('', map {$num % $_ ? '' : $fbmap{$_}} keys %fbmap) || $num; }; print "@{[map &$fizzbuzz, 1..100]}\n";
Wolfbyte
July 17, 2008, July 17, 2008 01:40, permalink
I can't resist posting the wonder that is Enterprise FizzBuzz http://code.google.com/p/fizzbuzz
Here is a sample portion.
FizzBuzzLogic.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
/// <summary>
/// Creates the transform.
/// </summary>
/// <returns>The Transform to apply to each number. This is really the FizzBuzz Operation.</returns>
public ITransformer CreateTransformer()
{
return new CoalescingTransformer(
new ConcatenatingTransformer(
new PredicatedTransformer(
delegate(int i) { return i % 3 == 0; },
new StaticMessageTransformer("Fizz"),
new NullTransformer()),
new PredicatedTransformer(
delegate(int i) { return i % 5 == 0; },
new StaticMessageTransformer("Buzz"),
new NullTransformer())),
new IdentityTransformer());
}
Chris Jester-Young
July 18, 2008, July 18, 2008 01:45, permalink
@Wolfbyte: Haha, nice. Very enterprisey, probably suitable for the next OMGWTF contest. :-P (That's http://omg.thedailywtf.com/ for the lurkers.)
paul.wilkins.myopenid.com
August 14, 2008, August 14, 2008 01:14, permalink
This is how I've refactored it for a code golf version of Fizz Buzz
1 2 3 4 5 6 7 8 9
class P { static void Main() { for (int i = 0; i++ < 100; ) System.Console.WriteLine( i % 3 < 1 ? i % 5 < 1 ? "FizzBuzz" : "Fizz" : i % 5 < 1 ? "Buzz" : "" + i ); } }
Let the battle begin!