AtCoder Regular Contest 131の解説記事です。
目次
ARC131 A – Two Lucky Numbers
問題
問題文の要約は以下の通りです。
問題の要約
\(x\) を十進法で書いたときに、連続する部分文字列として \(A\) が現れ、\(2x\) を十進法で書いたときに、連続する部分文字列として \(B\) が現れるような \(x\) を求めよ。
解説
\(A\) と \(B\) を文字列として結合する。
解説
\(B\) が偶数の時を考えると、2倍して \(B\) になる数は \(B\) の1/2倍となるため、\(A\) と \(B\) の1/2倍を文字列として結合しておけば、上位桁は \(A\) となり、下位の桁は2倍して \(B\) になります。
if b%2==0:
ans=a+str(b//2)
\(B\) が奇数の時を考えると、2倍して \(B\) になる数は \(B\) の1/2倍の整数部分に1を足した数となるため、\(A\) と \(B\) の1/2倍と2倍したときに桁上がりとなる5を文字列として結合しておけば、上位桁は \(A\) となり、下位の桁は2倍して \(B\) になります。
else:
ans=a+str(b//2)+'5'
解答
a=input()
b=int(input())
if b%2==0:
ans=a+str(b//2)
else:
ans=a+str(b//2)+'5'
print(ans)