2015-02-09 8 views
-2

Например, n = 11 означает, что карта должна иметь 0-1, 1-4, 2-1, 3-1, 4-1, 5-1, 6-1, 7-1, 8-1, 9-1Найти число вхождений цифр от 1 до N без использования цикла

public void countDigits(int n, Map map) { 
      while (n != 0) { 
      int d = n%10; 
      n /= 10; 
      map.put(d,map.get(d)++); 
      } 
      return result; 
     } 

Помимо указанного выше способа. Я хочу получить все цифры от 1 до N.

+0

Я не думаю, что ваш цикл делает то, что вы хотите это делать .. Вы называете его из другого цикла повторяется для от 1 до п? –

+2

Ваша проблема плохо указана. Пожалуйста, уточните свой вопрос. –

+0

Какова логика вашего ожидаемого выхода? пожалуйста, объясни. – dognose

ответ

0

Ваш код не компилируется вообще. Попробуйте заменить map.put(d,map.get(d)++); с

Integer tmp = (Integer)map.get(d); 
if(tmp == null) tmp = 0; 
tmp++; 
map.put(d,tmp); 
+0

Это не точный код. Просто скелет, который не нужен. –