Upgrade to Pro — share decks privately, control downloads, hide ads and more …

FizzBuzz code golf by ruby

gurrium
February 22, 2018

FizzBuzz code golf by ruby

FizzBuzz code golf for hiroshima.rb #062

gurrium

February 22, 2018
Tweet

More Decks by gurrium

Other Decks in Programming

Transcript

  1. FizzBuzz code golf

    View Slide

  2. first code

    View Slide

  3. (1..100).each do |i|
    puts "#{i} "
    if i % 3 == 0
    if i % 5 == 0
    puts 'fizzbuzz'
    next
    else
    puts 'fizz'
    next
    end
    end
    if i % 5 == 0
    puts 'buzz'
    next
    end
    end
    count 207

    View Slide

  4. if…else…end -> ? :

    View Slide

  5. (1..100).each do |i|
    print "#{i} "
    if i % 3 == 0
    puts i % 5 == 0 ? 'fizzbuzz' : 'fizz'
    next
    end
    puts i % 5 == 0 ? 'buzz' : nil
    end
    count 148

    View Slide

  6. nest conditional operator

    View Slide

  7. (1..100).each do |i|
    print "#{i} "
    puts i % 3 == 0 ? i % 5 == 0 ? 'fizzbuzz' : 'fizz' : i % 5 == 0 ? 'buzz' : nil
    end
    count 122

    View Slide

  8. do…end -> {…}

    View Slide

  9. (1..100).each { |i|
    print "#{i} "
    puts i % 3 == 0 ? i % 5 == 0 ? 'fizzbuzz' : 'fizz' : i % 5 == 0 ? 'buzz' : nil
    }
    count 119

    View Slide

  10. join lines

    View Slide

  11. (1..100).each { |i| print "#{i} ";puts i % 3 == 0 ? i %
    5 == 0 ? 'fizzbuzz' : 'fizz' : i % 5 == 0 ? 'buzz' : nil }
    count 115

    View Slide

  12. nil -> ''

    View Slide

  13. (1..100).each { |i| print "#{i} “;
    puts i % 3 == 0 ? i % 5 == 0 ? 'fizzbuzz' : 'fizz' : i % 5 == 0 ? 'buzz' : '' }
    count 114

    View Slide

  14. into string

    View Slide

  15. (1..100).each { |i| puts "#{i} #{'fizz' if i % 3 == 0}#{'buzz' if i % 5 == 0}" }
    count 81

    View Slide

  16. (1..100).each -> Integer#upto

    View Slide

  17. 1.upto(100) { |i| puts "#{i} #{'fizz' if i % 3 == 0}#{'buzz' if i % 5 == 0}" }
    count 79

    View Slide

  18. i == 0 -> i < 1

    View Slide

  19. 1.upto(100) { |i| puts "#{i} #{'fizz' if i % 3 < 1}#{'buzz' if i % 5 < 1}" }
    count 77

    View Slide

  20. delete whitespace

    View Slide

  21. 1.upto(100){|i|puts"#{i} #{'fizz'if i%3<1}#{'buzz'if i%5<1}"}
    count 62

    View Slide