読者です 読者をやめる 読者になる 読者になる

pascal.rb

Ruby


パスカルの三角形という、上の段のとなり同士を足して下段を作っていく数字の三角形があります。課題は何行目の何列目という指定をすると数字を答えるものでしたが、それより、一段全部答えた方がきれいな感じがするので下記のプログラムになっています。

# pascal.rb

def pascal(n)
  parray= []
  parray[0] = parray[n - 1] = 1 #どの段も両端は1
  i = 1
  while i < n do
    parray[i] = pascal(n - 1)[i - 1].to_i + 
                pascal(n - 1)[i].to_i
    i += 1
  end
  return parray
end

p pascal(1) #=> [1]
p pascal(2) #=> [1, 1]
p pascal(3) #=> [1, 2, 1]
p pascal(4) #=> [1, 3, 3, 1]
p pascal(5) #=> [1, 4, 6, 4, 1]
p pascal(6) #=> [1, 5, 10, 10, 5, 1]