0008-Sum of 4 Integers
問題(外部リンク)
実装の概要
使う数字の数が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); } } }