【AtCoder】ABC302解説(Python)

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

目次

ABC302 A – Attack

問題

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

問題の要約

\(A\) から \(B\) を最低何回引いたら 0 以下になるか?

制約

・\(1 \le A , B \le 10^{18}\)
・\(A , B\) は整数

入力

\(A\) \(B\)

出力

 答えを出力せよ。

解説1

\(A\) が \(B\) で割り切れるときと割り切れないときで場合分けをする。

解説

まず入力を \(A\) , \(B\) で受け取ります。

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

\(A\) が \(B\) で割り切れるときはA//Bが答えになります。

if A%B==0:
  print(A//B)

\(A\) が \(B\) で割り切れないときはA//B+1が答えになります。

else:
  print(A//B+1)

解答

A,B=map(int, input().split())
if A%B==0:
  print(A//B)
else:
  print(A//B+1)

if文をprint内にまとめると次のようになります。

A,B=map(int, input().split())
print(A//B if A%B==0 else A//B+1)

解説2

\(A\) を \(B\) で割ったときの切り上げを考える。

解説

\(A\) を \(B\) で割ったときの切り上げは(A+B-1)//Bと等しくなります。

解答

A,B=map(int, input().split())
print((A+B-1)//B)
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次