AtCoder Beginner Contest 254の解説記事です。
目次
ABC254 A – Last Two Digits
問題
問題文の要約は以下の通りです。
問題の要約
3桁の整数 \(N\) を与えたときの下2桁を出力せよ。
解法
3桁の整数 \(N\) を文字列とみて2文字目と3文字目を出力する。
解説
3桁の整数 \(N\) を文字列で受け取ります。
2文字目と3文字目を出力するのは、インデックスが0から始まることに注意すると、N[1]+N[2]
またはN[1:]
と書くことができます。
解答
# 入力
N=input()
# 出力
print(N[1]+N[2])
# 入力
N=input()
# 出力
print(N[1:])
ABC254 B – Practical Computing
問題
問題文の要約は以下の通りです。
問題の要約
\(N\) 行のパスカルの三角形を生成し、それぞれの行を整数列として出力せよ。
解法
指示された通りに実装する。
解説
問題文に書かれている通りに実装します。
- 整数列のリストは
N
個の整数列を含みます。 - 各整数列
A_i
の長さはi+1
です(i
は0からN-1
までのインデックス)。 - 各整数列
A_i
内の要素a_{i,j}
(j
は0からi
までのインデックス)は、j=0
またはj=i
の場合、1
になります。- それ以外の場合、
a_{i,j} = a_{i-1,j-1} + a_{i-1,j}
の計算によって求められます。
解答
# 入力
N= int(input())
# パスカルの三角形を格納するためのリスト
A = [[0] * (i + 1) for i in range(N)]
# パスカルの三角形を生成
for i in range(N):
for j in range(i + 1):
# 両端は1
if j == 0 or j == i:
A[i][j] = 1
# 両端以外は上の2つの和
else:
A[i][j] = A[i - 1][j - 1] + A[i - 1][j]
# 出力
for a in A:
print(*a)