Вам не нужно много таких циклов, вы можете улучшить их, кэшировав предыдущие выходные данные и повторно использовав их (Dynamic programming tabulation)
.Учитывая, что у вас нет значений больше 100, следующий код может работать для вас
public static int sumDigits(int num) {
int[] cache = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1 };
int sum = num + cache[num % 10] + cache[num / 10];
return sum;
}
в принципе, я кэшировал выходные данные для первых 10 входов.
К вашему сведению, вы можете масштабировать программу для больших входов, сохраняя предыдущие выходы в HashMap