これは個人的備忘録です。
問題
AtCoder Beginner Contest 254
考察
ans = [[0]*i for i in range(1,n+1)]
これによってサイズi
で初期値が0
の配列をn+1回重ねて二次元配列をつくることによって回答に使う二次元配列を生成できる。このとき0
のサイズをn
にしないように注意する。
for a in ans:
print(*a)
で答えの出力ができる
$ans_{ij}$は$i=0$のとき$j$は存在しないがそれは最初の条件分岐でカバーできる。
ACコード
n=int(input())
ans = [[0]*i for i in range(1,n+1)]
for i in range(n):
for j in range(i+1):
if j == 0 or j == i:
ans[i][j] = 1
else:
ans[i][j] = ans[i-1][j-1] + ans[i-1][j]
for a in ans:
print(*a)