I♥TLE

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

0008-Sum of 4 Integers

問題(外部リンク)

Sum of 4 Integers | Aizu Online Judge

実装の概要

使う数字の数が4つ、かつ全ての数字が1ケタと分かっているので全探索でも十分間に合います。
4重ループで解くのが自然だと思いますが、この実装ではあえて1重ループで記述し、各ケタの数字をmodで求めつつ数え上げました。なお、ループは浅くなりましたが10000回近く回すことになるので特に速くはなりません。

public class Main {
    public static void main(String[] args) throws NumberFormatException, IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
                 
        while(true){
            String tmpStr = br.readLine();
             
            if(tmpStr == null){
                break;
            }
 
            int answer = Integer.parseInt(tmpStr);
            int count = 0;
            for(int i = 0; i <= 9999; i++){
                int tmp = i/1000+(i%1000)/100+(i%100)/10+i%10;
                if(tmp == answer){
                    count++;
                }
            }
             
            System.out.println(count);
        }
    }
}