【AtCoder】ABC306解説(Python)

トヨタ自動車プログラミングコンテスト2023#3(AtCoder Beginner Contest 306)の解説記事です。

目次

ABC306 A – Echo

問題

問題文の要約は以下の通りです。

問題の要約

長さ \(N\) の文字列 \(S\) が与えられ、\(S\) の \(i\) 文字目を \(S_{i}\) としたとき、\(S_{1}\), \(S_{1}\), \(S_{2}\), \(S_{2}\), \(\cdots\), \(S_{N}\), \(S_{N}\) の順に連結した長さ \(2N\) の文字列を出力せよ。

制約

・\(N\) は \(1 \le N \le 50\) を満たす整数
・\(S\) は 長さ \(N\) の英小文字からなる文字列

入力

\(N\)
\(S\)

出力

 答えを出力せよ。

解説

\(S\) の\(i\) 文字目を2回ずつ出力する。

解説

まず入力 \(N\) をint型、\(S\) を文字列として受け取ります。

N=int(input())
S=input()

for文で \(S_{i}\) を2回出力します。S[i]+S[i]と書くことができ、改行されないようにend=''とします。

for i in range(N):
  print(S[i]+S[i],end='')

解答

N=int(input())
S=input()
for i in range(N):
  print(S[i]+S[i],end='')

ABC306 B – Base 2

問題

問題文の要約は以下の通りです。

問題の要約

0 と 1 からなる長さ 64 の数列 \(A = ( A_{0}, A_{1}, \cdots, A_{63} )\) に対して、\(A_{0}2^{0} + A_{1}2^{1} + \cdots + A_{63}2^{63}\) を求めよ。

入力

\(A_{0}\) \(A_{1}\) \(\cdots\) \(A_{63}\)

出力

答えを整数で出力せよ。

解説

\(A_{0}2^{0}\) から \(A_{63}2^{63}\) まで順番に足し合わせたものが答えになります。

解説

まずは\(A = ( A_{0}, A_{1}, \cdots, A_{63} )\) をリストで受け取ります。

A=list(map(int,input().split()))

答えの初期値を 0 とします。

ans=0

\(A_{0}2^{0}\) から \(A_{63}2^{63}\) まで順番に足し合わせ、答えを出力します。

for i in range(64):
  ans+=A[i]*(2**i)
print(ans)

解答

A=list(map(int,input().split()))
ans=0
for i in range(64):
  ans+=A[i]*(2**i)
print(ans)
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次