Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #34942

Re: So I did "FizzBuzz", in Java!

From Arne Vajhøj <arne@vajhoej.dk>
Newsgroups comp.lang.java.programmer
Subject Re: So I did "FizzBuzz", in Java!
Date 2016-07-17 15:10 -0400
Organization Aioe.org NNTP Server
Message-ID <nmgl6o$ml8$1@gioia.aioe.org> (permalink)
References <FizzBuzz-20160717163715@ram.dialup.fu-berlin.de>

Show all headers | View raw


On 7/17/2016 11:49 AM, Stefan Ram wrote:
>   I don't know if you have heard of »FizzBuzz«. Otherwise
>   a web search might explain it to you:
>
>       »Write a program that prints the numbers from 1 to 100.
>       But for multiples of three print "Fizz" instead of the
>       number and for the multiples of five print "Buzz". For
>       numbers which are multiples of both three and five print
>       "FizzBuzz"«.
>
>   Allegedly it's used to test job applicants and allegedly
>   even programmers with university degrees in the field fail
>   to be able to program it.
>
>   I have read about it for years, but today I did write it.
>
>   My solution tries to avoid code repetitions and to be
>   run-time efficient. It's not the smallest solution when
>   the code size is taken into account.
>
> public final class Main
> { public static void main( final java.lang.String[] args )
>   { final java.lang.String eol = java.lang.System.lineSeparator();
>     final java.lang.StringBuilder builder
>     = new java.lang.StringBuilder( 1024 );
>     final java.lang.String fizz     = "Fizz"     + eol;
>     final java.lang.String     buzz =     "Buzz" + eol;
>     final java.lang.String fizzbuzz = "FizzBuzz" + eol;
>     for( int i = 1; i < 101; ++i )
>     { final boolean d3 = i % 3 == 0;
>       final boolean d5 = i % 5 == 0;
>       final boolean db = d3 && d5;
>            if( db )builder.append( fizzbuzz );
>       else if( d3 )builder.append( fizz );
>       else if( d5 )builder.append( buzz );
>       else         { builder.append( i ); builder.append( eol ); }}
>     java.lang.System.out.println( builder ); }}
>
>   I did not avoid to have the string literal »"FizzBuzz"«,
>   even though one might have combined that from the strings
>   »Fizz« and »Buzz«, which are already there, but to do so
>   might be no real improvement.

It looks like a good candidate for "most obfuscated FizzBuzz code".

Who would hire anyone writing code like that????

Just code it as simple as possible. And format code properly.

Arne

Back to comp.lang.java.programmer | Previous | Next | Find similar | Unroll thread


Thread

Re: So I did "FizzBuzz", in Java! Arne Vajhøj <arne@vajhoej.dk> - 2016-07-17 15:10 -0400

csiph-web