Comment

Comment by somat

Enumerating all values probably can't be done in python as that requires some sort of unchecked loop construct, that is a goto or bare loop nether of which is present in python. perhaps a recursive solution(throws up a little in mouth)

baring that I too got nerd sniped by this and unsatisfied by the limitations of the authors solution here is my attempt. and when I read up on fizzbuz to make sure I was solving the correct thing. (I was not and my elegant duel state engine was wasted) it turns out the problem solution could be as simple as

    f_out = ['', '', 'fizz']
    b_out = ['', '', '', '', 'buzz']
    
    def fizz_buz(n):
        return(f_out[n % 3] +  b_out[n % 5])
anyhow the rest of my clever but unneeded and useless enumeration system, remember to read the spec first.

    f_state = {
        0:1,
        1:2,
        2:0,
        }

    b_state = {
        0:1,
        1:2,
        2:3,
        3:4,
        4:0,
        }

   def fizz_buzz_all():
        f_index = 0
        b_index = 0
        while 1: #how to loop with no end check?
            print(f_out([f_index] + b_out[b_index] )
            f_index = f_state[f_index]
            b_index = b_state[b_index]
and the recursive solution:

    def fizz_buzz_recurse(n):
        print(fizz_buzz(n))
        fizz_buzz_recurse(n + 1)
parent somat 11 months ago

Discussion

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton