this post was submitted on 14 Apr 2024
328 points (94.1% liked)

linuxmemes

21031 readers
516 users here now

Hint: :q!


Sister communities:


Community rules (click to expand)

1. Follow the site-wide rules

2. Be civil
  • Understand the difference between a joke and an insult.
  • Do not harrass or attack members of the community for any reason.
  • Leave remarks of "peasantry" to the PCMR community. If you dislike an OS/service/application, attack the thing you dislike, not the individuals who use it. Some people may not have a choice.
  • Bigotry will not be tolerated.
  • These rules are somewhat loosened when the subject is a public figure. Still, do not attack their person or incite harrassment.
  • 3. Post Linux-related content
  • Including Unix and BSD.
  • Non-Linux content is acceptable as long as it makes a reference to Linux. For example, the poorly made mockery of sudo in Windows.
  • No porn. Even if you watch it on a Linux machine.
  • 4. No recent reposts
  • Everybody uses Arch btw, can't quit Vim, and wants to interject for a moment. You can stop now.

  • Please report posts and comments that break these rules!

    founded 1 year ago
    MODERATORS
     
    you are viewing a single comment's thread
    view the rest of the comments
    [โ€“] [email protected] 4 points 6 months ago (1 children)

    Suddenly I feel like a fucking accomplished programmer, despite only doing some questionable stuff on Godot lately, but never messing up my loops... Not too badly anymore, anyway.

    A fizzbuzz type of question I know I would mess up on the modulo operator. I know the logic is if the division of the current_number by 3 has a remainder of zero, write fizz, but I always look up the operator

    [โ€“] [email protected] 1 points 6 months ago

    Yeah it always feels like "negative logic" to me. If it's not this and not that then don't do the other... Does my head in. Next time I'm going to use a lookup table "x..f.bf..fb.f.." then mod15 the index. f=Fizz, b=Buzz, x=both. Nice thing about this is that it's easier to change with the requirements. Want to shift the second fizz right one? No problem "x..f.b.f.fb.f..". Good luck doing that with the standard approach. Add Gronk which collides with Fizz, Buzz or both at various times? Also no problem - just extend and modify the LUT accordingly and change the mod.

    I can already hear people asking why x is at the start. Arrays are indexed from 0. FizzBuzz starts at 1. 15 mod 15 is zero. Loop N from 1-100, switch on lookup[N%15], case 'f' print Fizz, case 'g' print Gronk, case 'p' print FizzGronk and so on. The only "nice" original feature you lose is when both %3 and %5 fire at the same time and it prints FizzBuzz without any extra code.