отображение списка возможностей программы

1

Мне действительно нужна помощь в создании программы, которая отображает список полномочий

вот вход и выход:

Вход в приложение должен включать числа, представляющие следующее:

базовый показатель (от 1 до 10)

Вывод состоит в том, чтобы указать номер, который вы ввели в качестве базы, и найти полномочия для этой базы от 1 до конечного числа экспонентов, которое вводится.

Я почти закончил программу, но проблема в том, что программа рассчитывает базу только на мощность без перечисления списка полномочий.

Я знаю, что у меня что-то отсутствует в моем цикле, вот мой код

double baseIn, exponentIn;

baseIn = Integer.parseInt(txtBase.getText());
exponentIn = Integer.parseInt(txtExponent.getText());
 //  power = (int) Math.pow(baseIn, exponentIn);

for (int i = 1; i <= exponentIn; i++) {
    txtArea.setText(Integer.toString((int) baseIn)+ "to the power of " + i + "=" + Math.pow(baseIn, i) );

}
Теги:
math

2 ответа

0
Лучший ответ

Одна из проблем может заключаться в том, что вы перезаписываете тестовую строку выходной текстовой области в каждой итерации цикла, так что в конце - возможно, не видя ничего другого, потому что ваш код происходит так быстро, что не происходит перекраска - вы, только см. последний вывод.

Используйте stringbuilder, добавьте строку каждой итерации и покажите только комбинированный результат после цикла.

Или используйте уже существующую функциональность

textArea.append(text + newline);

см., например, Java Swing: подход для динамического добавления текста в текстовую область, обновление прокрутки

  • 0
    Отлично, я получил именно то, что хотел, я использовал append вместо setText, как вы упомянули, и получил правильный вывод, спасибо LutzL. Я действительно ценю это, так что, насколько я понимаю, вы можете использовать append, когда вы выводите несколько целых чисел из цикл?
  • 0
    Я не уверен, что вы спрашиваете. «append» сохраняет существующий текст в текстовой области и добавляет новый текст к нему. Это все в строках, textarea ничего не знает о целых числах. Чтобы сбросить текстовую область, вы должны использовать «settext» один раз перед циклом.
1

Ниже приводится рекурсивное решение. Объясняется поэтапно. Предполагая, что вы хотите 2 ^ 4

1) мы называем мощность (2,4)

2) мощность (2,4) вызывает мощность (2,3)

3) мощность (2,3) вызывает мощность (2,2)

4) мощность (2,2) потребляет мощность (2,1)

5) мощность (2,1) вызывает мощность (2,0)

6) мощность (2,0) возвращает 1

7) мощность (2,1) возвращается (2 * 1) или 2

8) мощность (2,2) возвращается (2 * 2) или 4

9) мощность (2,3) возвращается (2 * 4) или 8

10) мощность (2,4) возвращается (2 * 8) или 16

public static int power(int base, int power){

     if (power == 0)

          return 1;

     else

          return base * power(base, power-1);

}
  • 0
    спасибо, что ответили на streamingBits, но, если честно, я не совсем понимаю ваш код, вы используете классы, потому что я к этому не привык, я все еще новичок в Java
  • 0
    @issac нет, я не использую другие классы. Просто этот метод. Это называется рекурсия. Это может быть сложно понять сначала. Это метод, который вызывает сам себя. Я предлагаю читать это онлайн, даже на stackoverflow. Если я найду хороший ресурс, я вернусь к вам.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню