arrows blog

解いた問題などを適当に書いていきます。

AOJ 0007 Debt Hell

問題概要

最初お金が10万円ある。1週間ごとに5%の利子を加え、さらに1000円未満を切り上げる。
n週間後のお金を求めよ。

制約

  • 0 ≤ n ≤ 100

解法

シミュレーションする。

5%を加えるは、今持っているお金をmとすると、
m × 1.05である。

1000円未満の切り上げ方法は様々であるが、例えば、
1000 - m % 1000
とすれば良い(ここでa%bとは、aをbで割った余りを表す)。

コード

#include <iostream>

using namespace std;
 
int main()
{
    int n, debt = 100000;
    cin >> n;
    for (int i = 0; i < n; i++) {
        debt *= 1.05;
        if (debt % 1000 != 0) {
            debt += 1000 - debt % 1000;
        }
    }
    cout << debt << endl;
    return 0;
}