暑くなってきましたね!ビールが美味しい季節です!
みなさんは奢る立場ですか?それとも奢られる立場ですか?
私は最近後輩が増えて奢ることが多くなってきました。
外は暑いのに財布は寒くなる一方です。
そこで、今回は奢る立場の先輩がなるべく損しない条件を考えたいと思います。
れっつごー
前提
- 1人の支払う金額は1,000円単位
- 合計金額が人数でちょうど割り切れた場合みんな同じ額を出す
- 後輩が払う額 = (合計 / 全人数) を100の位で切り捨て
- 先輩が払う額 = (後輩が払った額の余り / 先輩の人数) を100の位で切り上げ
いろんなパターンを考えてみる
先輩も後輩も同じ人数パターン
先輩 2人 後輩 2人 合計金額 4,000円
これは素直に先輩も後輩も1,000円ずつ支払って、みんな幸せな飲み会です。
先輩 2人 後輩 2人 合計金額 6,000円
先輩が2,000円、後輩が1,000円のよくあるパターンですね。
先輩 2人 後輩 2人 合計金額 5,000円
この場合も先輩が2,000円、後輩が1,000円ですがお釣りが1,000円発生しました。このお釣りを誰がもらうかで性格が出そうですね。笑
先輩が少ないパターン
先輩 1人 後輩 2人 合計金額 4,000円
先輩が2,000円、後輩が1,000円のよくあるパターンですね。
先輩 1人 後輩 2人 合計金額 6,000円
割り切れるので、先輩も後輩も2,000円です。先輩と後輩が同じ数と違って後輩が損した感じになりました。
先輩 1人 後輩 2人 合計金額 5,000円
おやおや先輩が3,000円、後輩が1,000円と大きな差が出てしまいました。なんだか良い気がしないですね。
先輩が多いパターン
先輩 2人 後輩 1人 合計金額 4,000円
先輩が2,000円、後輩が1,000円ですが、お釣りが1,000円発生するので後輩くんはタダになりそうです。
先輩 2人 後輩 1人 合計金額 6,000円
割り切れるので、先輩も後輩も2,000円です。
先輩 2人 後輩 1人 合計金額 5,000円
先輩が2,000円、後輩が1,000円のよくあるパターンですね。
まとめ
先輩の人数が少ないときだと合計金額によって支払額に大きな差が出ることがわかりました。出来るだけ割り切れる数になるように注文したほうが良さそうですね!
おまけ
kotlinで実装してみましたが、テストの書き方がイマイチなので良い書き方があれば是非教えてほしいです。
- 実装
- テスト