Внутри вашего цикла while
вы делите num
на себя, а затем присваиваете результат обратно num
.Это сделает num
равным 1
навсегда.Измените его на
num /= 10;
, который удалит последнюю цифру.
Кроме того, вы уже вычислили последнюю цифру и сохранили результат в outcome
.Вы также можете использовать его:
arr[outcome]+=1;
Затем, когда вы попадете в цикл для печати массива, в условии всегда используйте <
длину массива, чтобы остановить после обработки последнего индекса length - 1
.Это предотвратит появление ArrayIndexOutOfBoundsException
, ожидающего показа.
for (int i = 0; i < arr.length; i++){