なお、計算結果が 10 になった場合、
10 の代わりに X(アルファベットの大文字)を用いる。
また、11 になった場合は、0 となる。
「また、」以降が抜けてた(笑)
def chkdigit10(isbn) n = 10 a = 0 isbn[0,9].each_byte do |i| a += (i-48) * n n -= 1 end a = 11 - a % 11 - a == 10 ? "X" : a.to_s + case a + when 10 + "X" + when 11 + "0" + else + a.to_s + end end