【AtCoder】ABC254解説(Python)

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\) 行のパスカルの三角形を生成し、それぞれの行を整数列として出力せよ。

解法

指示された通りに実装する。

解説

問題文に書かれている通りに実装します。

  1. 整数列のリストはN個の整数列を含みます。
  2. 各整数列A_iの長さはi+1です(iは0からN-1までのインデックス)。
  3. 各整数列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)
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次