SPOJ 1872 "Making Book" MKBOOK

問題:https://www.spoj.pl/problems/MKBOOK/


数値Aと数値Bの間に存在する数値の桁の出現頻度を求める問題.
最大値最小値書いてないしAとBの大小関係書いてないし,WA.]
longにした意味はたぶんない.

import java.io.BufferedReader;
import java.io.InputStreamReader;
 
class Main {
        public static void main(String[] z) throws Exception {
                BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
                int t = 1;
                for (String str; !(str = br.readLine()).equals("0");) {
                        long[] freq = new long[10];
                        String[] sp = str.split(" ");
                        long x = new Long(sp[0]), y = new Long(sp[1]);
                        for (long a=Math.min(x, y),b=Math.max(x, y); a <= b; ++a) {
                                char[] cs = ("" + a).toCharArray();
                                for (int i = 0; i < 10; ++i) {
                                        freq[i] += freq(cs, (char) (i + '0'));
                                }
                        }
                        System.out.print("Case " + t++ + ":");
                        for (int i = 0; i < 10; ++i) {
                                System.out.print(" " + i + ":" + freq[i]);
                        }
                        System.out.println();
                }
        }
 
        static int freq(char[] a, char c) {
                int freq = 0;
                for (int i = 0; i < a.length; ++i) {
                        if (a[i] == c) {
                                ++freq;
                        }
                }
                return freq;
        }
}