AOJ0007 Debt Hell
コメント
切り上げの問題。最初はよく分からなかったけど調べたら納得した。他の数字を切り上げるときでも大丈夫なようにちょっと一般化してみる。
(一般化)
ある数字aのn桁目を切り上げるとき、n << 1で割った余りrが0なら行わない。余りrが存在するなら、(n << 1) - rをaに足してあげればいい。
(ビット演算に慣れるためにもあえて表現してみたw)
ソース
import java.util.Scanner; public class Main { int range = 1000; // 1000未満なら切り上げ // 1000で割った余りrが0じゃなければ1000-rを足す void run() { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = 100000; for (int i = 0; i < n; i++) { m += m * 5 / 100; int r = m % range; if (r != 0) { m += range - r; } } System.out.println(m); sc.close(); } public static void main(String[] args) { new Main().run(); }