Я бы лучше выразить это с примером, я пытаюсь написать программу, скажем, у меня есть функция, как это:Как преобразовать целое число в список цифрового [читайте подробности в странице]
static List<Integer> int2List(int l, int base)
вход и выход должен быть
l=0, base=3, return {1}
l=1, base=3, return {2}
l=2, base=3, return {3}
l=3, base=3, return {1,1}
l=4, base=3, return {1,2}
l=5, base=3, return {1,3}
l=6, base=3, return {2,1}
l=7, base=3, return {2,2}
l=8, base=3, return {2,3}
l=9, base=3, return {3,1}
l=10, base=3, return {3,2}
l=11, base=3, return {3,3}
l=12, base=3, return {1,1,1}
l=13, base=3, return {1,1,2}
l=14, base=3, return {1,1,3}
... Это совсем как рекурсивно мод, но есть некоторые условия, я не могу понять.
Благодаряспасибо за все ваши комментарии и я обновил содержание вопроса и подпись метода, я хотел, чтобы отобразить содержимое списка, и я забыл добавить запятую между элементами.
Итак, вот мой код, это еще не совсем верно, но я думаю, вы можете получить от него какой-то смысл. Это также очень похоже на Long.toString (int i, int radix), различия в том, что сначала мне нужно добавить эти ведущие нули, а во-вторых, мне нужно сделать «+1» из каждого элемента в списке, но это не так дает мне правильный либо ...
static List<Integer> int2List(int l, int base) {
// String s = Long.toString(l,base);
List<Integer> list = new ArrayList<Integer>();
int k = l % base;
int j = l/base;
int m = 0;
list.add((int) (k + 1));
while (j > base) {
k = j % base;
list.add((int) (k));
if (j == base)
break;
j = j/base;
}
if (j == base) {
list.add((int) (j));
} else {
if (j > 0) {
list.add((int) (j));
}
}
Collections.reverse(list);
return list;
}
Я знаю об ошибках, которые я сделал в первой версии, теперь я могу исправить свои ошибки и обновить вопрос, чтобы быть более конкретным, вы можете удалить «не стоит читать», пожалуйста, я буду очень признателен ..
===================
Мда, метод должен быть использован в петля, так что она выведет всю возможную последовательность s, состоящий из числа в диапазоне [1, base], а l
можно рассматривать как индекс.
Ваш пример не имеет большого смысла. Почему вы хотите получить один список значений, а не просто вернуть значение? Можете ли вы объяснить, что должен сделать ваш метод? –
Почему он возвращает список? – maszter
из того, что вы показали, похоже, что функция увеличивает как входной номер, так и базу на 1, а затем возвращает представление измененной базы. – Shiping