与えられた数字のケタ数
どう書く?org
1〜10000000をランダム(種も不定)で1000回テスト。(Java1.4)
private static void test(int i) { double d = StrictMath.log(i) / StrictMath.log(10d) + 0.0000000000000005d; int digit = ((int)d) + 1; int length = String.valueOf(i).length(); if (digit != length) { String message = "n = " + i + ", result: " + d; throw new IllegalArgumentException(message); } int pow = (int)StrictMath.pow(10, (int)d); System.out.println("n = " + i + " => " + digit + ", " + pow); } public static void main(String[] args) { long seed = System.currentTimeMillis(); Random r = new Random(seed); for (int i = 0; i < 1000; i++) { test(r.nextInt(10000000)); } }
なんか誤差が出ますね。補正してますが、これで良いんでしょうか。