お題†
パスカルの三角形を出力してください。
入出力例1†
入力
3
出力
1 1 1 1 2 1
入出力例2†
入力
5
出力
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1
チェック用スクリプト†
チェック用スクリプトを書きました。紙面の都合上(紙面?)よみづらいプログラムになってます。
h="1\n1 1\n1 2 1";j=h.gsub(/$/m," ");k="1\n1 1"+ "\n1 2 1\n1 3 3 1\n1 4 6 4 1";l=k.gsub(/$/m," ") f=open"|"+$*[0],"r+";f.puts"3";a=f.read.chomp;f.close if h==a||j==a;puts"Q1 OK";else;puts"Q1 NG";end f=open"|"+$*[0],"r+";f.puts"5";a=f.read.chomp;f.close if k==a||l==a;puts"Q2 OK";else;puts"Q2 NG";end
使い方†
上の文字列をhoge.rbというファイル名にして、自分の作ったプログラムを./a.outにしたなら
ruby hoge.rb ./a.out
提出†
C†
C++†
D†
Ruby†
- 11 12/09 aom cent5.7 ruby1.9.1 88byte
$_.to_i.times{|x|(x+1).times{|y|print ($F*x).combination(y).to_a.length.to_s+" "};puts} - anオプションを必要とします。 1.9系以上でしか動作しません
Java†
Haskell†
Common Lisp†
nasm†
brainfsck†
なでしこ†
参考†
Rubyで短くないプログラムを作りました。参考にしてください。
def C(n, r)
func(n) / (func(r) * func(n - r))
end
def func(i)
if i == 0
1
else
i * func(i - 1)
end
end
n = gets.to_i
for i in 0..n - 1
for j in 0..i
print C(i, j), " "
end
puts
end





