【ABC157 A】「Duplex Printing」を解く【Python3】

コンテスト一覧へ

 

高橋君がNページの書類を両面印刷するために、紙が何枚必要か求める問題です。

偶数ページの場合は、2で割った枚数、奇数ページの場合は、もう1枚必要になります。

提出
n = int(input())

ans = n//2
if n%2 != 0:
    ans += 1

print(ans)

//は切り捨て除算演算子です。

奇数だった場合、切り捨て除算に「+1」をしていますが、この結果は切り上げ除算と同じものになります。

 

ということで、切り上げ除算を計算しても問題ないです。

下記のようにmathモジュールを使うと、切り上げを行うこともできます。

提出
import math
n = int(input())
ans = math.ceil(n/2)
print(ans)

 

一見わかりづらいですが、Python3の場合、以下のように書いても切り上げになります。

提出
n = int(input())
ans = -(-n//2)
print(ans)

最初「-n」を2で割っているため、切り捨てで絶対値が大きい方の数になっているので、それをさらにマイナスにすると、切り上げした結果と同じ数字になります。

【ABC157】解説記事リスト

コンテスト一覧に戻る

コメントを残す

メールアドレスが公開されることはありません。