0007-Debt Hell
問題(外部リンク)
実装の概要
一週間ごとに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); } }