【AtCoder】ARC131解説(Python)

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)
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次