I♥TLE

Java、オンラインジャッジなど

0007-Debt Hell

問題(外部リンク)

Debt Hell | Aizu Online Judge

実装の概要

一週間ごとに5%の利子、さらに1000円未満を切り上げという、問題文にも書いてありますが本当にとんでもない闇金です。
複利計算なのでループを回しながら計算を行います。端数切り上げのタイミングに注意しましょう。
端数切り上げの比較的シンプルな方法は、とりあえず1000で割ってしまってから(int型なので小数部は切り捨てられます)1000倍し、そこに更に1000を足すことです。

public class Main {
    public static void main(String[] args) throws NumberFormatException, IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int week = Integer.parseInt(br.readLine());
         
        int debt = 100000;
        for(int i = 0; i < week; i++){
            debt *= 1.05;
            if(debt % 1000 > 0){
                debt = (debt/1000)*1000+1000;
            }
        }
        System.out.println(debt);
    }
}