Thank you, I finally get the task 
But still I have a problem. If I test small numbers, I get results of all of them. When I test big numbers, I get results of only one or two checked numbers. Is it because my map is overflow? What can I do?
Thank you)))
public class Main {
public static Map<Integer, Integer> hm = new LinkedHashMap<Integer, Integer>();
public static int coinExchange(int number) {
if (number < 12) return number;
int result;
if (hm.containsKey(number))
result = hm.get(number);
else
result = 0;
if (result == 0) {
int exchange = coinExchange(number/2) + coinExchange(number/3) + coinExchange(number/4);
if (number > exchange)
result = number;
else
result = exchange;
hm.put(number, result);
}
return result;
}
public static void main(String []args){
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
String str;
while((str = br.readLine()) != null && str.length() != 0) {
int number = Integer.parseInt(str);
Main.hm.put(number, 0);
}
for (Integer key : Main.hm.keySet()) {
System.out.println(coinExchange(key));
}
} catch (Exception e){
return;
}
}
}