Ruby : stack level too deep (SystemStackError)

iboss

I try to solve this problem http://www.nattee.net/~dae/algo/prob/hw03b_tiling/problem.pdf

So I using divide and conquer method to solve it but when I execute my program I get

tile.rb:7: stack level too deep (SystemStackError)

And this is my code

def tile (x, y, bx, by, ex, ey)
    mx = (bx+ex)/2
    my = (by+ey)/2

    if (by<=y && y<=my)
        if (bx<=x && x<=mx) # top-left
            puts "0 #{mx} #{my}"
        elsif (mx+1<=x && x<=ex) # top-right
            puts "1 #{mx} #{my}"
        end
    elsif (my+1<=y && y<=ey)
        if (bx<=x && x<=mx) # bottom-left
            puts "2 #{mx} #{my}"
        elsif (mx+1<=x && x<=ex) # bottom-right
            puts "3 #{mx} #{my}"
        end
    end

    tile(x,y,bx,by,mx,my) #top-left
    tile(x,y,mx+1,by,ey,my) #top-right
    tile(x,y,bx,my+1,mx+1,ey)   #bottom-left
    tile(x,y,mx+1,my+1,ex,ey) #bottom-right

    if ex-bx == 2 && ey-by == 2 then return end
end

temp = []
gets.chomp.strip.split(" ").each do |item|
temp << item.to_i
end

L = temp[0]
x = temp[1]
y = temp[2]

tile(x,y,0,0,L-1,L-1)

I can't find the cause.

DGM

There is no way out of your recursion - for every call to tile, it will make 4 more calls to tile. Recursion always needs a "relief valve" way out before the recursion call. Try moving your return up before the tile calls.

The return statement could stand to be written in more idiomatic ruby.

Try:

return if (ex-bx == 2 && ey-by == 2)

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

Ruby, stack level too deep (SystemStackError)

From Dev

SystemStackError - Stack Level Too Deep

From Dev

SystemStackError - stack level too deep with a User Search

From Dev

Each loop, stack level too deep (SystemStackError)

From Dev

SystemStackError (stack level too deep) in Model

From Dev

Ruby on Rails - SystemStackError (stack level too deep) when doing after_update

From Dev

Merging Ranges using Sets - Error - Stack level too deep (SystemStackError)

From Dev

stack level too deep (SystemStackError) when loading hash via require

From Dev

SystemStackError (stack level too deep) when deleting a record

From Dev

SystemStackError - stack level too deep: Using metaprograming with ActiveRecord

From Dev

Ruby routes - stack level too deep

From Dev

Stack level too deep in Ruby in subscription model

From Dev

Why am i getting the error `stack level too deep (systemstackerror)` when hashing 2 columns in a CSV?

From Dev

Modifying value using before_validation before validate_uniqueness_of - SystemStackError: stack level too deep

From Dev

Vagrant stack level too deep (SystemStackError) when trying to loop create machines

From Dev

Iterating through array of hashes in rails ,SystemStackError: stack level too deep error

From Dev

Stack level too deep

From Dev

Stack level too deep

From Dev

Stack Level Too Deep Error on Calling Yield in Ruby

From Dev

ruby on rails. stack level too deep error

From Dev

Ruby: Getting Stack level too deep on YAML.load of hash

From Dev

Stack level too deep with Devise

From Dev

Rails 3.2.21 instrumenter stack level too deep

From Dev

alias_method: stack level too deep

From Dev

Stack level too deep and before_save

From Dev

Stack level too deep because recursion

From Dev

rspec + factorygirl : stack level too deep

From Dev

Stack level too deep on user.save

From Dev

Stack Level Too Deep, Modules and Classes

Related Related

  1. 1

    Ruby, stack level too deep (SystemStackError)

  2. 2

    SystemStackError - Stack Level Too Deep

  3. 3

    SystemStackError - stack level too deep with a User Search

  4. 4

    Each loop, stack level too deep (SystemStackError)

  5. 5

    SystemStackError (stack level too deep) in Model

  6. 6

    Ruby on Rails - SystemStackError (stack level too deep) when doing after_update

  7. 7

    Merging Ranges using Sets - Error - Stack level too deep (SystemStackError)

  8. 8

    stack level too deep (SystemStackError) when loading hash via require

  9. 9

    SystemStackError (stack level too deep) when deleting a record

  10. 10

    SystemStackError - stack level too deep: Using metaprograming with ActiveRecord

  11. 11

    Ruby routes - stack level too deep

  12. 12

    Stack level too deep in Ruby in subscription model

  13. 13

    Why am i getting the error `stack level too deep (systemstackerror)` when hashing 2 columns in a CSV?

  14. 14

    Modifying value using before_validation before validate_uniqueness_of - SystemStackError: stack level too deep

  15. 15

    Vagrant stack level too deep (SystemStackError) when trying to loop create machines

  16. 16

    Iterating through array of hashes in rails ,SystemStackError: stack level too deep error

  17. 17

    Stack level too deep

  18. 18

    Stack level too deep

  19. 19

    Stack Level Too Deep Error on Calling Yield in Ruby

  20. 20

    ruby on rails. stack level too deep error

  21. 21

    Ruby: Getting Stack level too deep on YAML.load of hash

  22. 22

    Stack level too deep with Devise

  23. 23

    Rails 3.2.21 instrumenter stack level too deep

  24. 24

    alias_method: stack level too deep

  25. 25

    Stack level too deep and before_save

  26. 26

    Stack level too deep because recursion

  27. 27

    rspec + factorygirl : stack level too deep

  28. 28

    Stack level too deep on user.save

  29. 29

    Stack Level Too Deep, Modules and Classes

HotTag

Archive