ebisukeプログラミング初心者脱出黙示録

30歳を過ぎてから始めたプログラミングと競プロの記録。Pythonで取り組んでいます。Arduinoで電子工作も

AtCoder-ABC196 A - Difference Max / B - Round Down【Python解答例】

f:id:ebisuke33:20210320230757p:plain
AtCoder Beginner Contest196のA とBについてPythonの解答例を記事にしていきます。
AtCoder Beginner Contest 196 - AtCoder



AtCoder Beginner Contest196 A - Difference Max

A - Difference Max

問題文

整数 a,b,c,d が与えられます。
a≤x≤b, c≤y≤d となるように整数 x,y を選ぶとき、 x−y の最大値を求めてください。

制約

・入力は全て整数
・−100≤a≤b≤100
・−100≤c≤d≤100

解答例

a, b = map(int,input().split())
c, d = map(int,input().split())

ans = b - c
print(ans)

解説

問題文のようにa≤x≤b, c≤y≤d となる整数 x,y を選び、 x−y の最大値を答える問題です。

x - yは最も大きいxから最も小さいyを引けば最大値になります。
a≤x≤bから最も大きいxはb、c≤y≤dから最も小さいyはcなのでb - cの値を出力すればACでした。


AtCoder Beginner Contest196 B - Round Down

B - Round Down

問題文

整数または小数 X が与えられるので、小数点以下を切り捨てて整数で出力してください。

制約

・0≤X≤10^100
・X は整数、または小数点以下が 100 桁以下の小数であり、先頭に余計な 0 は付かない

解答例

x = input()

ans = ""

for i in range(len(x)):
    if x[i] == '.':
        break
    else:
        ans += x[i]
print(ans)

解説

与えられたXについて、小数点以下を切り捨てた整数を答える問題です。

Xが10の100乗なので直接Xをint型で受け取っても誤差が大きすぎてWAになります。
したがって、入力はstringで受け取って、小数点が来るまでの値を出力しました。
for文で一文字目から調べていき、小数点でなければansに追加、小数点が来たら探索を終了します。

ループを抜けたあとでansを出力すればACでした。



続いてABC196のC問題も記事にしていきたいと思います。



ABC196の関連記事はこちら
ebisuke33.hatenablog.com
ebisuke33.hatenablog.com