back
1 comments
I just googled around for that, and here's a brutish one in Ruby: https://gist.github.com/3230825

And because I had to fiddle around manually to understand it (not good at Ruby's inbuilt methods) here's how it works: It generates two long arrays, one containing "Fizz" every third element, and one containing "Buzz" every five elements, the rest is filled up with nils.

Then it iterates over 1 to 100 and zips the two arrays at that position together - if the "zipped together" sum of both arrays is nil, that number is printed, else the concatenated string of both arrays at that position is printed (example: "Fizz" + nil = "Fizz"). Neat!

Edit: I also found a great one using flip-flops: https://gist.github.com/3230984

That is actually a rather clever solution. I guess you could do the same in Python, using itertools.

That said, I guess I should rephrase my question: Is there a simple programming test that can help weed out fakers quickly, which does not involve mathematics? Sort of like "Deploy a simple CRUD app in 15 mins" or something?

This is to address the parent's concern that a lot of web apps out there don't actually require much mathematics.

I did a coding interview problem once where the company gave me an API endpoint that spat out JSON representing products, and told me to build a page that displays those objects onto a page with infinite scroll. As you scrolled down to the bottom of the page it would load more products.
For completion's sake, yes you can do that in Python, it's just slightly uglier (as far as I know) using

''.join(filter(None, [a, b]))

and

itertools.cycle([None, None, 'Fizz'])

itertools.cycle([None, None, None, None, 'Buzz'])