トヨタ自動車プログラミングコンテスト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)