阿部です。

私の勘違いだといいのですが、divmodの挙動が?です。

def f(a)
  x,y = a.divmod(10)
  return x*10+y
end

というメソッドf()は、0以外の整数であればa==f(a)が成り立つと思うのですが、
aがマイナスの場合、これが成立しません。

例1: f(123)の場合
    a.divmod(10)の返り値 ・・・ [12,3]
    x*10+y ・・・・・・・・・・ 123

例2: f(-123)の場合
    a.divmod(10)の返り値 ・・・ [-12,7]
    x*10+y ・・・・・・・・・・ -113

ドキュメントには特に記述がなかったので、rubyのソースを読んでみたんです
けど、divmod()で%の演算を呼び出しているところまでで挫折してしまいまし
た(^^;

おっと、rubyのバージョンはcygwin版の
ruby 1.4.3
と
ruby 1.4.2
です。

# ruby-mathのほうがよかったでしょうか。
----
yasushi abe <yasushi / stbbs.net>